我有一个URL www.site地址/站点页/ page1.aspx这个?用户名=迪普&密码=迪普 我怎样才能将URL更改为 www.site-网址地址/网站页面/ page1.aspx这个?用户名= 232322323232 &密码= 2323232322323 即我想要加密我通过URL字段请帮我加密和使用.NET解密在C#中的URL,我现在用的响应.redirect并通过这些值作为查询字符串....请帮助....如何加密/解密C#
回答
你的方法是有缺陷的加密不会真正帮助潜在的问题。如果你穿过网络出去,你很少(永远也不会)看到你所描述的模式,即使它是加密的。
相反,你应该存储用户凭据尽可能安全的服务器上,并可以用它来查找凭证的查询字符串传递一个独特的,短暂的会话令牌。
用于安全地存储在服务器上,一旦你收到用户的密码是第一次,你应该使用一个单向散列,像SHA256,与盐。你可以在任何地方传递这个值,存储它并验证,比较你存储的哈希值是否有潜在的密码。像使用有毒废物一样处理用户的密码 - 尽快将其扔掉。您希望在密码存储业务方面与您想要进行有毒废物存储业务一样糟糕。
(从我的iPhone回答,链接或即将出台,如果有人愿意帮助我!:))
你真的想这样做吗?如果您打算使用用户名和密码,推测可能会对您提供的信息或功能有所帮助。随着URL参数传递,你留个号码的攻击面敞开(未至少重播攻击,任何人都可以冒充你的用户。
什么是你真正想要做的,为什么你不能使用what's provided in ASP.NET?
我同意。将凭证存储在查询字符串中是非常糟糕的形式,即使它是加密的。对于截取查询字符串并冒充用户来说很容易。 – 2010-06-03 13:30:59
嗯......我需要传递一些数据到另一个页面..如果我通过网址传递,我不希望客户端看到提交的值..thatz所有我认为abt加密值和传递是可能的。 ..有一个简单的方法... – deepu 2010-06-03 13:32:39
你不必一起传递用户名/密码!听说会议?如果你只是看看MSFT推荐的内容,这会自动处理。请看看标准的ASP.NET身份验证机制,我敦促你! – 2010-06-03 14:23:04
为什么不发布值而不是使用查询字符串?使用SSL至少没有人会看到密码被加密或以其他方式。URL中的其他密码不提供任何安全性。附近,希望没有人会尝试他们打开你的房子。
基本上它是一个有缺陷的前提。网址是多方面缓存,因此它是有道理的,不要把passwo在他们的rds。
然而,你不是一个人在把密码的URL。检查了这一点
是的,当你必须从一个页面发送密码到另一个页面时,你应该使用post方法,当你在基于查询字符串的页面中使用一些值时,可以使用它。 – 2014-05-02 06:46:12
它不会在你所希望的方式工作,但肯定的加密是可能的,通过下文提到的方式
加密页面:
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;
}
}
解密页面:
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;
}
}
- 1. 如何做到这一点:J2ME加密C#解密和J2ME解密C#加密?
- 2. Rijndael:C++加密,C#解密
- 3. C#加密和解密
- 4. 加密/解密程序C++
- 5. Java加密C#解密
- 6. 加密在C /解密ROT ++
- 7. C#/ Java | AES256加密/解密
- 8. C#河豚加密/解密
- 9. AES C#加密解密FIPS
- 10. DES ECB C#加密/解密
- 11. AES加密C#解密Java?
- 12. C#加密Android解密
- 13. C#加密到PHP解密
- 14. c#加密和解密
- 15. web.crypto加密C#解密
- 16. 加密和解密在C#
- 17. rsa加密/解密polarssl C++
- 18. AES在C加密解密
- 19. C#(加密)和Java(解密)之间的AES加密/解密
- 20. 如何解密加密密码?
- 21. pycrypto加密/解密,解密
- 22. 从C#到C++的加密/解密
- 23. C#3DES加密到C解密
- 24. c lang加密。并在c#解密#
- 25. AES加密/解密 - 动态C到C#
- 26. 解密 - 加密加密JS
- 27. 解密,加密
- 28. 如何在c中解密密码#
- 29. PHP - 解密加密密码
- 30. 密码加密/解密
呼吸....标点符号是你的朋友。 – 2010-06-03 13:16:47
我也想知道。不是说我会这样做,但“会话”究竟是如何工作的? – 2010-06-03 13:18:24
如果作为一个用户,您可以在URL中看到您的用户名和密码,感觉很舒服,请举手?甚至被认为是“加密的?”任何人? – 2010-06-03 13:19:25