C# 256 位 AES 加密与解密文件的实现代码

发布时间:2020-02-29编辑:脚本学堂
本文介绍用256位AES加密与解决文件的C#代码,有需要的朋友,可以参考下。

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.jb200.com
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 类写入到文件中, 加密和解密就完成了。

就是这些了,脚本学堂,祝大家学习进步。