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