当前位置:  编程技术>.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 类写入到文件中, 加密和解密就完成了。

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


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php aes加密类代码分享
  • php实现aes加密类分享
  • PHP AES256加密算法的实现代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3