对称加密算法实现ASP.NET数据加密

开发 后端 算法
对称加密算法实现ASP.NET数据加密是如何执行的呢?都有哪些类被使用?那么本文就向你介绍这些相关的内容。

对称加密算法实现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数据加密
责任编辑:仲衡 来源: 酷网学院
相关推荐

2009-08-13 18:12:11

C#数据加密

2009-08-04 10:57:44

ASP.NET数据加密哈希算法

2023-07-30 17:44:24

CryptoJS加密字符串

2010-07-28 10:09:01

2018-07-10 10:29:27

2023-08-01 07:24:05

2020-05-27 10:10:56

对称加密Hash算法数字签名

2012-09-13 09:58:38

2009-07-24 09:02:24

ASP.Net RSA

2023-10-16 19:05:20

2019-08-02 10:43:57

2021-11-22 23:20:01

加密算法架构

2010-01-14 14:56:07

2020-05-08 11:13:28

Python数据技术

2011-06-28 14:30:48

Asp.net

2023-08-02 07:27:53

2009-10-26 14:18:46

2009-08-21 15:02:31

C#加密算法

2011-08-18 12:12:29

2020-12-16 05:46:58

算法加密算法MD5
点赞
收藏

51CTO技术栈公众号