两种常见文件加密方式文件加密解密是开发中经常用到的一个功能点,常见于客户端项目。需要隐藏配置数据、参数设置和数据字典,以增强客户端的安全性。在这一章中,我们介绍
两种常见文件加密方式
文件加密解密是开发中经常用到的一个功能点,常见于客户端项目。需要隐藏配置数据、参数设置和数据字典,以增强客户端的安全性。
在这一章中,我们介绍两种常用的文件加密和解密方法。
1.自定义加密和解密功能。其思路是将文件转换成Byte[],用对称加密算法对Byte元素进行对齐和加密。加密字节[]被转换为base64。解密后的文件可以用base64加密的byte[]解密生成原始文件。
2.使用系统。security . cryptography . rijndaelmanaged,需要32位密码和16位向量密码。
代码实例:
//加密
string pwd = & # 34gjhdjfhdjdkdssajdjfkdjfdlijfadsd & # 34;;//32位,密码
string ivpwd = & # 34gjhdjfhdjdkdssad & # 34;//16位,向量密码
RijndaelManaged AES = new RijndaelManaged();
byte[] pwdBytes = System。text . encoding . utf8 . getbytes(pwd);
aes。Key = pwdBytes
aes。IV =编码。UTF8 . GetBytes(iv pwd);
aes。模式=密码模式。CBC
aes。Padding = PaddingMode。PKCS7
byte[]read file byte = read byte(file path);
ICryptoTransform transform = aes。create encryptor();
byte[] fielBuffer = transform。TransformFinalBlock(readFileByte,0,readfile byte。长度);//注意这里返回的是加密字节[]。
//解密
RijndaelManaged AES = new RijndaelManaged();
byte[] pwdBytes = System。text . encoding . utf8 . getbytes(pwd);
aes。Key = pwdBytes
aes。IV =编码。UTF8 . GetBytes(iv pwd);
aes。模式=密码模式。CBC
aes。Padding = PaddingMode。PKCS7
byte[]read file byte = read byte(file path);
ICryptoTransform transform = aes。create decryptor();
//注意这里返回的是解密字节[]。
byte[] fielBuffer = transform。TransformFinalBlock(readFileByte,0,readfile byte。长度);
总结
加密方式越复杂,需要的运算量越大,速度也会相应变慢;加密方式需要结合项目来选择。对于数据保密性强的客户端项目,建议使用RSA和RijndaelManaged混合加密。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。
作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/408745.html