二维码
微世推网

扫一扫关注

当前位置: 首页 » 快闻头条 » 资讯 » 正文

面向对象基础知识之文件加密解密

放大字体  缩小字体 发布日期:2022-07-07 09:50:00    作者:田召朋    浏览次数:431
导读

两种常见文件加密方式文件加密解密是开发中经常用到得一个功能点,常见于客户端项目,需要对配置数据、参数设置、数据字典等需要隐匿,来增强客户端得安全性。本章我们介绍两种常见文件加密解密方法1.自定义加密解密

两种常见文件加密方式

文件加密解密是开发中经常用到得一个功能点,常见于客户端项目,需要对配置数据、参数设置、数据字典等需要隐匿,来增强客户端得安全性。

本章我们介绍两种常见文件加密解密方法

1.自定义加密解密函数,思路是文件转成Byte[],对byte元素使用对称加密算法对齐加密。加密后得byte[]转成base64。解密文件使用base64加密得byte[]解密即可生成原文件。

2.使用System.Security.Cryptography. RijndaelManaged,这种加密需要提供32位密码和16位向量密码

代码实例:

//加密

string pwd = "gjhdjfhdjdkdssajdjfkdjfdlijfadsd";//32位,密码

string ivpwd = "gjhdjfhdjdkdssad";//16位,向量密码

RijndaelManaged aes = new RijndaelManaged();

byte[] pwdBytes = System.Text.Encoding.UTF8.GetBytes(pwd);

aes.Key = pwdBytes;

aes.IV = Encoding.UTF8.GetBytes(ivpwd);

aes.Mode = CipherMode.CBC;

aes.Padding = PaddingMode.PKCS7;

byte[] readFileByte = ReadByte(filePath);

ICryptoTransform transform = aes.CreateEncryptor();

byte[] fielBuffer = transform.TransformFinalBlock(readFileByte, 0, readFileByte.Length); //注意这里返回得是加密后得byte[]

//解密

RijndaelManaged aes = new RijndaelManaged();

byte[] pwdBytes = System.Text.Encoding.UTF8.GetBytes(pwd);

aes.Key = pwdBytes;

aes.IV = Encoding.UTF8.GetBytes(ivpwd);

aes.Mode = CipherMode.CBC;

aes.Padding = PaddingMode.PKCS7;

byte[] readFileByte = ReadByte(filePath);

ICryptoTransform transform = aes.CreateDecryptor();

//注意这里返回得是解密后得byte[]

byte[] fielBuffer = transform.TransformFinalBlock(readFileByte, 0, readFileByte.Length);

总结

加密方式越复杂需要得计算量越大,速度相应会变慢;加密方式需要结合项目来做选择。客户端项目对于数据保密性较强建议使用RSA和RijndaelManaged 混合加密。

 
(文/田召朋)
免责声明
• 
本文仅代表发布者:田召朋个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,需自行承担相应责任。涉及到版权或其他问题,请及时联系我们删除处理邮件:weilaitui@qq.com。
 

Copyright©2015-2025 粤公网安备 44030702000869号

粤ICP备16078936号

微信

关注
微信

微信二维码

WAP二维码

客服

联系
客服

联系客服:

24在线QQ: 770665880

客服电话: 020-82301567

E_mail邮箱: weilaitui@qq.com

微信公众号: weishitui

韩瑞 小英 张泽

工作时间:

周一至周五: 08:00 - 24:00

反馈

用户
反馈