dee*_*epu 3 c# asp.net url-rewriting
我有一个URL www.site-address/site-page/page1.aspx?username = deepu&password = deepu如何将URL更改为www.site-address/site-page/page1.aspx?username = 232322323232&password = 2323232322323 ie我想加密我通过URL传递的字段请帮助我使用.net加密和解密C#中的URL,现在我使用response.redirect并将这些值作为查询字符串传递....请帮助....
它不会以您想要的方式工作,但可以通过下面提到的方式进行加密
加密页面:
string id1 = "id1";
Response.Redirect("decryptionPage.aspx?id1=" + HttpUtility.UrlEncode(Encrypt(id1)));
private string Encrypt(string stringToEncrypt)
{
byte[] inputByteArray = Encoding.UTF8.GetBytes(stringToEncrypt);
byte[] rgbIV = { 0x21, 0x43, 0x56, 0x87, 0x10, 0xfd, 0xea, 0x1c };
byte[] key = { };
try
{
key = System.Text.Encoding.UTF8.GetBytes("A0D1nX0Q");
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, rgbIV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
catch (Exception e)
{
return e.Message;
}
}
Run Code Online (Sandbox Code Playgroud)
解密页面:
string getId1 = Convert.ToString(Request.QueryString["id1"]);
var qs = Decrypt(HttpUtility.UrlDecode(getId1));
private string Decrypt(string EncryptedText)
{
byte[] inputByteArray = new byte[EncryptedText.Length + 1];
byte[] rgbIV = { 0x21, 0x43, 0x56, 0x87, 0x10, 0xfd, 0xea, 0x1c };
byte[] key = { };
try
{
key = System.Text.Encoding.UTF8.GetBytes("A0D1nX0Q");
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
inputByteArray = Convert.FromBase64String(EncryptedText);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key, rgbIV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
return encoding.GetString(ms.ToArray());
}
catch (Exception e)
{
return e.Message;
}
}
Run Code Online (Sandbox Code Playgroud)
你的方法是有缺陷的,加密不会真正帮助潜在的问题.如果你走出网络,你很少(绝不应该)看到一个类似你所描述的模式,即使它是加密的.
相反,您应该尽可能安全地将用户凭据存储在服务器上,并在可用于查找凭据的查询字符串中传递唯一的短期会话令牌.
至于安全地存储在服务器上,一旦你第一次收到用户的密码,你应该使用单向哈希,比如SHA256,加盐.您可以在任何地方传递此值,存储它,并验证将潜在密码的含量与您存储的散列进行比较.像有毒废物一样对待用户的密码 - 尽快将其丢弃.您希望密码存储业务与您想要进入有毒废物存储业务一样糟糕.
(从我的iPhone回答,链接即将到来或如果有人想帮助我!:))
| 归档时间: |
|
| 查看次数: |
23612 次 |
| 最近记录: |