教程集 www.jiaochengji.com
教程集 >  脚本编程  >  Asp.net  >  正文 C# 256 位 AES 加密与解密文件的实现代码

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

发布时间:2016-03-18   编辑:jiaochengji.com
本文介绍用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.jbxue.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 类写入到文件中, 加密和解密就完成了。

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

您可能感兴趣的文章:
C# 256 位 AES 加密与解密文件的实现代码
golang基础学习-AES加密
PHP如何使用AES加密和解密
密码学之对称加密
php aes加密类代码分享
Python:常见的加密方式
有关discuz程序中PHP加密函数的原理分析
PHP 数据加密的方法
php实现单位时间内字符串加密解密的函数
Javascript 到 PHP 加密通讯的简单实现

[关闭]
~ ~