当前位置: 编程技术>.net/c#/asp.net
C# 256 位 AES 加密与解密文件的实现代码
来源: 互联网 发布时间:2014-08-30
本文导语: Tips: AES 加密非常安全,256位的甚至是美国神马安全局的加密标准,乖乖,好牛气啊。 加密代码: //加密 public byte[] AesEncryptor(byte[] bsFile, string password) { RijndaelManaged aes = new RijndaelManaged(); aes.Key = Encoding.UTF8.GetBytes(this.PasswordMD5(p...
Tips: AES 加密非常安全,256位的甚至是美国神马安全局的加密标准,乖乖,好牛气啊。
加密代码:
//加密 public byte[] AesEncryptor(byte[] bsFile, string password) { RijndaelManaged aes = new RijndaelManaged(); aes.Key = Encoding.UTF8.GetBytes(this.PasswordMD5(password)); aes.IV = Encoding.UTF8.GetBytes(this.PasswordMD5(password).Substring(8, 16)); aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; ICryptoTransform transform = aes.CreateEncryptor(); return transform.TransformFinalBlock(bsFile, 0, bsFile.Length); }
解密代码:
//解密 www. public byte[] AesDecryptor(byte[] bsFile, string password) { RijndaelManaged aes = new RijndaelManaged(); aes.Key = Encoding.UTF8.GetBytes(this.PasswordMD5(password)); aes.IV = Encoding.UTF8.GetBytes(this.PasswordMD5(password).Substring(8, 16)); aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; ICryptoTransform transform = aes.CreateDecryptor(); return transform.TransformFinalBlock(bsFile, 0, bsFile.Length); }
说明:
传入文件的 byte 数组, 以及密码. 因为这个 256 位的 key 是需要 32 位的, 而 IV 是需要 16 位, 用了一个 PasswordMD5 来将密码处理为 32 位。
另外就是, KEY 和 IV 都是解密的时候要用到的, 且两个值必须正确, 才能成功解开。
两个方法的返回值都是 byte 数组, 把数组用 File 类写入到文件中, 加密和解密就完成了。
就是这些了,脚本学堂,祝大家学习进步。