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

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

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

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

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

2024-12-31 08:00:00

SpringBoot开发加密

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

2011-06-28 14:30:48

Asp.net

2020-05-08 11:13:28

Python数据技术

2023-08-02 07:27:53

2009-10-26 14:18:46

2011-08-18 12:12:29

2009-08-21 15:02:31

C#加密算法
点赞
收藏

51CTO技术栈公众号