Unity中使用DES加密数据
来源:互联网 发布:季度数据季节调整 编辑:程序博客网 时间:2024/05/22 18:23
/// <summary>
/// 加密 /// </summary> /// <param name="SourceText">需要加密的原字符串</param> /// <param name="key">秘钥</param> /// <returns></returns> public string Encrypt_UTF8(string SourceText,string key) { //实现一个加密服务的类的对象,这个类提供了DES加密算法 DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider(); //因为加密内容有可能包含汉字,所以用UTF8格式,将加密的字符串保存在字节数组里 byte[] inputBytesArray = Encoding.UTF8.GetBytes(SourceText); //设置算法的秘钥和初始化向量,需要转换为ASCII码的二进制数据 desProvider.Key = Encoding.ASCII.GetBytes(key); desProvider.IV = Encoding.ASCII.GetBytes(key); //实现一个内存流写入加密后的数据 MemoryStream memoryStream = new MemoryStream(); //实现一个加密转换流,其中包含要将加密后的内容写入的内存流对象,用DESCrytoServiceProvider创建的加密器,模式为写入数据 CryptoStream cryptoStream = new CryptoStream(memoryStream, desProvider.CreateEncryptor(), CryptoStreamMode.Write); //将需要加密的字符串通过加密流写入到内存流中 cryptoStream.Write(inputBytesArray, 0, inputBytesArray.Length); //更新内存流存储块,然后清除缓存 cryptoStream.FlushFinalBlock(); //用来将加密后的数据填充为一个字符串返回 StringBuilder builder = new StringBuilder(); byte[] byteArray = memoryStream.ToArray(); for (int i = 0; i < byteArray.Length; i++) { //builder.Append(byteArray[i]); builder.AppendFormat("{0:X2}", byteArray[i]); } return builder.ToString(); }
解密方法
/// <summary> /// 解密 /// </summary> /// <param name="DecryptText">需要解密的字符串</param> /// <param name="sKey">秘钥</param> /// <returns></returns> public string DesDecrypt(string DecryptText, string sKey) { //实现一个加密服务的类的对象,这个类提供了DES加密算法 DESCryptoServiceProvider des = new DESCryptoServiceProvider(); //实现一个二进制数组保存将需要解密的字符转换为二进制后的数据,因为加密后的数据用16位字符保存,所以定义的大小为源字符串一半 byte[] inputByteArray = new byte[DecryptText.Length / 2]; //将解密内容转换为32位整数,然后存储在二进制数组里 for (int x = 0; x < DecryptText.Length / 2; x++) { int i = (Convert.ToInt32(DecryptText.Substring(x * 2, 2), 16)); inputByteArray[x] = (byte)i; } //设置秘钥和初始化向量 des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); //用来存储解密内容的内存流 MemoryStream ms = new MemoryStream(); //加密转换流 CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); //转换后写入数据 cs.Write(inputByteArray, 0, inputByteArray.Length); //更新存储,清理缓存 cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); return System.Text.Encoding.UTF8.GetString(ms.ToArray()); }
0 0
- Unity中使用DES加密数据
- 在JAVA中使用DES算法加密数据
- 使用 DES 算法对数据加密
- 使用 DES 算法对数据加密
- 使用DES和RSA做数据加密
- Java中使用DES进行加密解密
- Java中使用DES进行加密解密
- 在java中使用DES 加密解密
- java中使用DES加密解密
- 【数据加密】Java中3DES加密解密调用示例
- DES对称数据加密
- DES 数据加密
- Android DES数据加密
- 24、数据加密-DES
- DES加密字符串数据
- C#中CA加密与DES加密的混合使用
- C#使用Des加密
- DES加密使用
- 中规模实现组合逻辑函数(两种)
- SQL Server 行列相互转换命令:PIVOT和UNPIVOT使用详解
- C++之继承(多重继承+多继承+虚继承+虚析构函数+重定义)
- matplotlib-3D绘图
- C# 的DataGridView 操作数据库 插入,更新,删除
- Unity中使用DES加密数据
- 联网判断
- Javascript学习路程(更新中)
- 关于摄影
- 浅谈TCP/IP和UDP协议
- 关于Maven的安装配置和Eclipse中的使用
- 63. Unique Paths II
- 《HelloGitHub月刊》第11期
- hadoop在Eclipse上执行, 总是无法打印日志, 在50070Web界面的日志警告log4j:WARN No appenders could be found for logger