C#实现AES加密和解密函数
2015-01-08 09:26
288 查看
AES简介
AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据 的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations )和替换(substitutions)输入数据。Figure 1 显示了 AES 用192位密钥对一个16位字节数据块进行加密和解密的情形。
AES加密函数
public static string Encrypt(string toEncrypt) { byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012"); byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt); RijndaelManaged rDel = new RijndaelManaged(); rDel.Key = keyArray; rDel.Mode = CipherMode.ECB; rDel.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = rDel.CreateEncryptor(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return Convert.ToBase64String(resultArray, 0, resultArray.Length); }
[b]AES解密函数[/b]
public static string Decrypt(string toDecrypt) { byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012"); byte[] toEncryptArray = Convert.FromBase64String(toDecrypt); RijndaelManaged rDel = new RijndaelManaged(); rDel.Key = keyArray; rDel.Mode = CipherMode.ECB; rDel.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = rDel.CreateDecryptor(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return UTF8Encoding.UTF8.GetString(resultArray); }
原文地址:http://www.cnblogs.com/matthewZhang/archive/2008/11/07/1328532.html
相关文章推荐
- C#实现AES加密和解密函数原代码
- C#实现AES加密和解密函数
- C#实现AES加密和解密函数
- 使用C#实现AES加密解密
- 用C#实现AES加密和解密
- JAVA 与C# 的AES的加密函数、解密函数,加密解密结果一致
- 使用C#实现AES加密解密
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现
- C#使用DES和AES实现加密解密功能示例
- C#实现AES(Rijndael算法)加密解密
- C#实现的AES加密解密完整实例
- C# 实现 JAVA AES加密解密[原创]
- C#实现AES加密和解密
- AES加解密[C#实现AES加密解密]
- C#实现AES加密解密
- 【转】asp.net(c#)加密解密算法之sha1、md5、des、aes实现源码详解
- 用C#实现AES加密和解密
- C#实现对AES加密和解密的方法
- C#实现256位AES加密和解密
- C#代码实现对AES加密解密