对称加密算法实现ASP.NET数据加密
创始人
2024-04-24 18:01:05
0

对称加密算法实现ASP.NET数据加密是如何的呢?那么下面就想大家详细说明:

以下是关于对称加密算法的C#实现ASP.NET数据加密代码,大家可以根据需要更改不同的算法,文中以Rijndael算法为例: 

  1.  
  2. using System;   
  3. using System.IO;   
  4. using System.Security.Cryptography;   
  5. using System.Text;   
  6.  
  7. namespace DataCrypto   
  8. {   
  9. /// ﹤summary﹥   
  10. /// ASP.NET数据加密之对称加密算法类   
  11. /// ﹤/summary﹥   
  12. public class SymmetricMethod   
  13. {   
  14.  
  15. private SymmetricAlgorithm mobjCryptoService;   
  16. private string Key;   
  17. /// ﹤summary﹥   
  18. /// ASP.NET数据加密之对称加密类的构造函数   
  19. /// ﹤/summary﹥   
  20. public SymmetricMethod()   
  21. {   
  22. mobjCryptoService = new RijndaelManaged();   
  23. Key = "Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";   
  24. }   
  25. /// ﹤summary﹥   
  26. ///ASP.NET数据加密之获得密钥   
  27. /// ﹤/summary﹥   
  28. /// ﹤returns﹥密钥﹤/returns﹥   
  29. private byte[] GetLegalKey()   
  30. {   
  31. string sTemp = Key;   
  32. mobjCryptoService.GenerateKey();   
  33. byte[] bytTemp = mobjCryptoService.Key;   
  34. int KeyLength = bytTemp.Length;   
  35. if (sTemp.Length ﹥ KeyLength)   
  36. sTemp = sTemp.Substring(0, KeyLength);   
  37. else if (sTemp.Length ﹤ KeyLength)   
  38. sTemp = sTemp.PadRight(KeyLength, ' ');   
  39. return ASCIIEncoding.ASCII.GetBytes(sTemp);   
  40. }   
  41. /// ﹤summary﹥   
  42. /// ASP.NET数据加密之获得初始向量IV   
  43. /// ﹤/summary﹥   
  44. /// ﹤returns﹥初试向量IV﹤/returns﹥   
  45. private byte[] GetLegalIV()   
  46. {   
  47. string sTemp = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";   
  48. mobjCryptoService.GenerateIV();   
  49. byte[] bytTemp = mobjCryptoService.IV;   
  50. int IVLength = bytTemp.Length;   
  51. if (sTemp.Length ﹥ IVLength)   
  52. sTemp = sTemp.Substring(0, IVLength);   
  53. else if (sTemp.Length ﹤ IVLength)   
  54. sTemp = sTemp.PadRight(IVLength, ' ');   
  55. return ASCIIEncoding.ASCII.GetBytes(sTemp);   
  56. }   
  57. /// ﹤summary﹥   
  58. /// ASP.NET数据加密之加密方法   
  59. /// ﹤/summary﹥   
  60. /// ﹤param name="Source"﹥待加密的串﹤/param﹥   
  61. /// ﹤returns﹥经过加密的串﹤/returns﹥   
  62. public string Encrypto(string Source)   
  63. {   
  64. byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);   
  65. MemoryStream ms = new MemoryStream();   
  66. mobjCryptoService.Key = GetLegalKey();   
  67. mobjCryptoService.IV = GetLegalIV();   
  68. ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();   
  69. CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);   
  70. cs.Write(bytIn, 0, bytIn.Length);   
  71. cs.FlushFinalBlock();   
  72. ms.Close();   
  73. byte[] bytOut = ms.ToArray();   
  74. return Convert.ToBase64String(bytOut);   
  75. }   
  76. /// ﹤summary﹥   
  77. /// ASP.NET数据加密之解密方法   
  78. /// ﹤/summary﹥   
  79. /// ﹤param name="Source"﹥待解密的串﹤/param﹥   
  80. /// ﹤returns﹥经过解密的串﹤/returns﹥   
  81. public string Decrypto(string Source)   
  82. {   
  83. byte[] bytIn = Convert.FromBase64String(Source);   
  84. MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);   
  85. mobjCryptoService.Key = GetLegalKey();   
  86. mobjCryptoService.IV = GetLegalIV();   
  87. ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();   
  88. CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);   
  89. StreamReader sr = new StreamReader(cs);   
  90. return sr.ReadToEnd();   
  91. }   
  92. }   
  93. }  

对称加密算法实现ASP.NET数据加密的相关内容就向你介绍到这里,希望通过介绍是你对对称加密算法实现ASP.NET数据加密有所了解。

【编辑推荐】

  1. ASP.NET数据缓存机制浅析
  2. ASP.NET数据缓存之数据缓存浅谈
  3. ASP.NET数据采集的实现浅析
  4. ASP.NET数据访问层SqlHelperSqlHelper的使用
  5. 哈希算法实现ASP.NET数据加密

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...