這篇是以前寫的文章,順便轉過來這邊
主要是參考這篇文章稍做改變
先講一下URL傳參數的部分,我想這部分應該很多人都會,
只要在網址後面加個?(問號)加上(參數名稱)=(參數值),若有多個參數,則用&串接
範例:
在.cs裡面
2 | string strParameter = string .Format( "postback.aspx?ID={0}&Name={1}" , "A0001" , "Andy" ); |
3 | Response.Redirect(strParameter); |
這樣就可以達到傳參數到下一個頁面的功能了
接著加上加解密功能
首先要在該頁面匯入namespace (此處為default.aspx.cs)
using System.Security.Cryptography;
接著撰寫產生金鑰的程式碼
01 | protected void Page_Load( object sender, EventArgs e) |
05 | DESCryptoServiceProvider des = new DESCryptoServiceProvider(); |
07 | Key = ASCIIEncoding.ASCII.GetString(des.Key); |
08 | IV = ASCIIEncoding.ASCII.GetString(des.Key); |
再來是加密功能
04 | /// <param name="EnString">欲加密的字串</param> |
05 | /// <returns></returns> |
06 | public string EnCode( string EnString) |
09 | byte [] b = Encoding.UTF8.GetBytes(EnString); |
10 | DESCryptoServiceProvider des = new DESCryptoServiceProvider(); |
11 | ICryptoTransform ict = des.CreateEncryptor(ASCIIEncoding.ASCII.GetBytes(Key),ASCIIEncoding.ASCII.GetBytes(IV)); |
12 | byte [] outData = ict.TransformFinalBlock(b, 0, b.Length); |
14 | return Convert.ToBase64String(outData); |
然後導頁傳參數的部分加密
1 | protected void Button1_Click( object sender, EventArgs e) |
4 | string strParameter = string .Format( "postback.aspx?ID={0}&Name={1}" , EnCode( "A0001" ), EnCode( "Andy" )); |
5 | Response.Redirect(strParameter); |
可以看到參數值已經變成亂碼
再來是解密的部分,由於是導到下一個頁面,因此解密的部分在下一頁處理。(此處是postback.aspx.cs)
解密功能
02 | public string DeCode( string DeString) |
05 | byte [] b = Convert.FromBase64String(DeString); |
06 | DESCryptoServiceProvider des = new DESCryptoServiceProvider(); |
07 | ICryptoTransform ict = des.CreateDecryptor(ASCIIEncoding.ASCII.GetBytes(Key), ASCIIEncoding.ASCII.GetBytes(IV)); |
08 | byte [] outData = ict.TransformFinalBlock(b, 0, b.Length); |
10 | return Encoding.UTF8.GetString(outData); |
執行解密
1 | protected void Page_Load( object sender, EventArgs e) |
5 | string id = DeCode(Request.QueryString[ "ID" ].ToString()); |
6 | string name = DeCode(Request.QueryString[ "Name" ].ToString()); |
7 | Label1.Text = "你的ID是" + id + " NAME是 " + name; |
結果
不過小弟對於加解密方面的know how了解不深,不清楚此加解密方式是否真的安全
這方面有勞各位前輩指導了。
若有錯誤的地方也歡迎指證,感謝。
留言
張貼留言