我有一個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