6
A
回答
10
你可能不應該這樣做。如果cookie非常敏感,請將其僅存儲在服務器上。
如果你真的需要,有很多方法可以做到這一點。首先,你需要將明文轉換爲字節數組,像這樣:
var plainBytes = Encoding.UTF8.GetBytes(plaintext);
如果你確定你的明文絕不會使用Unicode,您可以使用代替;這將導致更小的cookie)。
然後,你需要加密它。最簡單的方法就是像這樣使用DPAPI。 (首先,添加對System.Security.dll
的引用)。請注意,這不適用於服務器場。
var encryptedBytes = ProtectedData.Protect(plainBytes, null, DataProtectionScope.CurrentUser);
最後,您需要將它轉換回文本,以便您可以將它放入cookie中。這是最好的爲Base64完成的,像這樣:
Response.AddCookie("MyEncryptedCookie", Convert.ToBase64String(encryptedBytes));
要解密的cookie,你需要扭轉這些步驟,就像這樣:
var encryptedBytes = Convert.FromBase64String(Request.Cookies["MyEncryptedCookie"].Value);
var decryptedBytes = ProtectedData.Unprotect(encryptedBytes , null, DataProtectionScope.CurrentUser);
var plaintext = Encoding.UTF8.GetString(decryptedBytes);
注意,cookie將被非常大,即使是小的明文。
如果要在服務器場中使用此功能,可以使用AES;看看System.Security.Cryptography.RijndaelManaged
。
2
最簡單的方法是不加密!只需使用cookie ID(加一個鹽)來查找服務器上的值(內容)。
-2
最安全的方法是使用ASP.Net會話狀態而不是cookie。由於會話狀態永遠不會發送給客戶端,因此您無需擔心。
相關問題
- 1. C#簡單加密
- 2. C++簡單加密
- 3. 簡單加密/解密在C++
- 4. 如何以簡單的格式查看此內容? (JSON)
- 5. 在c#中加密文件最簡單的方法是什麼?
- 6. 在C++中實現公鑰加密的簡單方法?
- 7. 在PHP中設置cookie的簡單,快速加密(Symfony2)
- 8. C中的簡單加密函數
- 9. 在asp.net c中創建簡單的Cookie#
- 10. 如何以編程方式在swift 3.0中添加UISegmentedControl?
- 11. 在PHP中簡單加密
- 12. 如何用C++以簡單的方式返回二維數組
- 13. 以簡單的方式
- 14. JSP中的簡單加密
- 15. 如何以簡單的方式將CGPoint對象添加到NSArray?
- 16. 如何以簡單的方式預加載圖像?
- 17. 簡單加密
- 18. 如何在spacemacs中以簡單的方式創建新文件?
- 19. 如何在Python中以簡單的方式拆分XML文件?
- 20. 如何以簡單的方式在Keras中分配class_weight?
- 21. 如何添加一個字符串數組以簡單的方式 - C++
- 22. 加密圖像文件的簡單加密/解密方法
- 23. 什麼是在C/Objective-C中加密const char *的簡單方法?
- 24. 以編程方式替換加載的GridView單元格內容
- 25. C++簡單的數字加密字母
- 26. 簡單的C#加密程序問題
- 27. 簡單的加密/解密在VB.Net
- 28. 簡單的一行,Java中的本地加密/解密方法
- 29. 如何在.NET Core中存儲機器密鑰以加密/解密auth cookie
- 30. 在java中的簡單加密
謝謝SLaks!我會使用像RijndaelManaged的東西! :-) – AndreMiranda 2009-07-07 18:48:49