Unity 3D 文件加密下 AES的加密解密使用
来源:互联网 发布:怎么卸载java 编辑:程序博客网 时间:2024/05/18 02:19
版本:unity 5.4.1 语言:C#
这本书有点蛋疼,说了配置文件的读取之后,他说了两种算法:
//OBFS 加密算法private static string OBFS(string str){ int length = str.Length; var array = new char[length]; for(int i = 0; i < array.Length; ++i) { char c = str[i]; var b = (byte)(c ^ length - i); var b2 = (byte)((c >> 8) ^ i); array[i] = (char)(b2 << 8 | b);} return new string(array);} //SHA512 加密算法private static string GetSHA512Password(string password){ byte[] bytes = Encoding.UTF7.GetBytes(password); byte[] result; SHA512 shaM = new SHA512Managed(); result = shaM.ComputeHash(bytes); StringBuilder sb = new StringBuilder(); foreach(byte b in result) { sb.AppendFormat("{0:x2}", b); } return sb.ToString();}
说是加密文件的,但是我根本没看明白,加密文件的话至少也得有解密吧?OBFS这个算法我没查到,不过SHA512是哈希算法,根本不可逆,加密之后怎么解密?
看看函数的名字,Password,这就是把用户的密码加密后放到数据库中,然后用户输入密码,再将输入的密码加密,最后两个加密的字符串进行对比的节奏啊。。这不是文件加密啊。。。
说完这个之后作者提到了Zip的压缩,但和本章主题根本没有关系吧。
网上查到比较有名的加密解密算法就是AES、DES、RC4等。
这边提供一下AES的加密解密,C#中已经实现:
public static string myEncrypt(string data){ byte[] bs = Encoding.UTF8.GetBytes(data); RijndaelManaged aes256 = new RijndaelManaged(); aes256.Key = Encoding.UTF8.GetBytes("12345678901234567890123456789012"); aes256.Mode = CipherMode.ECB; aes256.Padding = PaddingMode.PKCS7; return Convert.ToBase64String(aes256.CreateEncryptor().TransformFinalBlock(bs, 0, bs.Length));} public static string myDecrypt(string data){ byte[] bs = Convert.FromBase64String(data); RijndaelManaged aes256 = new RijndaelManaged(); aes256.Key = Encoding.UTF8.GetBytes("12345678901234567890123456789012"); aes256.Mode = CipherMode.ECB; aes256.Padding = PaddingMode.PKCS7; return Encoding.UTF8.GetString(aes256.CreateDecryptor().TransformFinalBlock(bs, 0, bs.Length));}
注释就不加了,需要注意的是加密后获得的bytes千万别用UTF8去获取字符串,不然会有信息损失,导致后面解密失败。
嗯,今天就讲这些,明天继续看书。
0 0
- Unity 3D 文件加密下 AES的加密解密使用
- AES文件加密解密
- 文件AES加密、解密
- 使用对称加密aes对文件进行zip加密解密
- AES加密解密|及Base64的使用
- AES加密解密|及Base64的使用
- AES加密解密|及Base64的使用
- iOS AES加密解密的使用
- AES加密解密算法文件
- Android AES 文件加密解密
- Android AES 文件加密解密
- Android AES 文件加密解密
- 对称加密算法AES------使用AES算法对文件进行加密/解密的操作(JAVA)
- PHP的AES加密解密
- iOS AES的加密解密
- Java的AES加密解密
- iOS AES的加密解密
- PHP AES的加密解密
- win32+VS2013下使用pthread
- 实用英语
- SQLite指令
- XML笔记
- LeetCode Problem 237. Delete Node in a Linked List
- Unity 3D 文件加密下 AES的加密解密使用
- linux下Jenkins自动构建android
- “Microsoft.Practices.EnterpriseLibrary.Data.Database”的类型初始值设定项引发异常。
- Codeforces
- spring使用map接收前台整型数据
- Java对象的序列化和反序列化
- 安卓菜鸟--桥接设计模式
- Poj 1837 Balance【DP】
- SoftMax回归学习