各位兄弟
  我们非常高兴地邀请大家来回顾一下C#古老的加密算法——256位AES。
  目前由于隐私泄露导致的悲剧层出不穷,而这些隐私泄露几乎都是因为电脑丢失,电脑临时被他人使用,blablabla...只有当您使用自己的账号和密码登录后才能被解密使用。
  256位AES具有如下特点:
  完全免费
  blablabla...
  高强度加密
  blablabla...
  操作简单,轻松上手
  blablabla...
  空间大小您做主
  使用此C#加密算法,可以轻松花一天时间写出一个密盘管理小工具,使用它,你可以在你使用您硬盘上空闲空间创建加密文件,因此密盘的大小取决于您硬盘的空闲空间大小,只要您的硬盘足够大,就可以存放尽可能多的文件到密盘中。
  欢迎您试用并交流你们的宝贵意见和建议。
  使用方法:

      创建一个C#项目,使用IO类库读入文件,用加密算法加密它,再用IO类库保存此文件。

下面是转自原文:

原文地址:

 

AES简介

AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。

AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据 的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations )和替换(substitutions)输入数据。Figure 1 显示了 AES 用192位密钥对一个16位字节数据块进行加密和解密的情形。

AES加密函数



publicstaticstring 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);
}




AES解密函数



publicstaticstring 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);
}




注:以上代码实现的是256位的AES算法