博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unity3d-解密加密数据
阅读量:5230 次
发布时间:2019-06-14

本文共 4704 字,大约阅读时间需要 15 分钟。

利用RijndaelManaged加密解码。需要导入命名空间 using System.Security.Cryptography; 

一个很简单的例子,最终的结果

 

解密和加密类

public class DESEncrypt{    #region ========加密========    ///      /// 加密数据     ///      /// 要加密的内容     /// key,必须为32位     /// 
public static string Encrypt(string Text, string sKey) { byte[] keyArray = UTF8Encoding.UTF8.GetBytes(sKey); RijndaelManaged encryption = new RijndaelManaged(); encryption.Key = keyArray; encryption.Mode = CipherMode.ECB; encryption.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = encryption.CreateEncryptor(); byte[] _EncryptArray = UTF8Encoding.UTF8.GetBytes(Text); byte[] resultArray = cTransform.TransformFinalBlock(_EncryptArray, 0, _EncryptArray.Length); return Convert.ToBase64String(resultArray, 0, resultArray.Length); } #endregion #region ========解密======== /// /// 解密数据 /// /// /// ///
public static string Decrypt(string Text, string sKey) { byte[] keyArray = UTF8Encoding.UTF8.GetBytes(sKey); RijndaelManaged decipher = new RijndaelManaged(); decipher.Key = keyArray; decipher.Mode = CipherMode.ECB; decipher.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = decipher.CreateDecryptor(); byte[] _EncryptArray = Convert.FromBase64String(Text); byte[] resultArray = cTransform.TransformFinalBlock(_EncryptArray, 0, _EncryptArray.Length); return UTF8Encoding.UTF8.GetString(resultArray); } #endregion}

 

 编写测试代码

1 using UnityEngine; 2 using System.Collections; 3 using System; 4 using System.Security.Cryptography; 5 using System.Text; 6 public class da : MonoBehaviour 7 { 8  9     //需要加密的字符串10     string encrypt = string.Empty;11     //加密后的字符串12     string desEncrypt = string.Empty;13     // Use this for initialization14     void Start()15     {16 17     }18 19     // Update is called once per frame20     void Update()21     {22 23     }24 25 26     void OnGUI()27     {28         string key = "12345678901234567890123456789000"; //必须为32位29         encrypt = GUILayout.TextField(encrypt, GUILayout.MinWidth(150));30         GUILayout.Space(5);31         desEncrypt = GUILayout.TextArea(desEncrypt, GUILayout.Height(200),GUILayout.MinWidth(150));32 33         if (GUILayout.Button("加密"))34         {35             desEncrypt = DESEncrypt.Encrypt(encrypt, key);36         }37         if (GUILayout.Button("解密"))38         {39             desEncrypt = DESEncrypt.Decrypt(desEncrypt, key);40         }41     }42 }

 或者可以用MD5

1  ///  2         /// MD5加密 3         ///  4         ///  5         /// 
6 public static string GetMD5(string sDataIn) 7 { 8 MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); 9 byte[] bytValue, bytHash;10 bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn + "md");11 bytHash = md5.ComputeHash(bytValue);12 md5.Clear();13 string sTemp = "";14 for (int i = 0; i < bytHash.Length; i++)15 {16 sTemp += bytHash[i].ToString("X").PadLeft(2, '0');17 }18 return sTemp.ToLower();19 }

 收集的一个代码

1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Security.Cryptography; 5 using System.IO; 6 namespace GetMD5 7 {     8     class Program 9     {10         public static string getFileHash(string filePath)11         {           12             try13             {14                 FileStream fs = new FileStream(filePath, FileMode.Open);15                 int len = (int)fs.Length;16                 byte[] data = new byte[len];17                 fs.Read(data, 0, len);18                 fs.Close();19                 MD5 md5 = new MD5CryptoServiceProvider();20                 byte[] result = md5.ComputeHash(data);21                 string fileMD5 = "";22                 foreach (byte b in result)23                 {24                     fileMD5 += Convert.ToString(b, 16);25                 }26                 return fileMD5;   27             }28             catch (FileNotFoundException e)29             {30                 Console.WriteLine(e.Message);31                 return "";32             }                                 33         }34         static void Main(string[] args)35         {36             string md5 = getFileHash("E:\\Myweb\\cubetest.unity3d");37             string b = getFileHash("E:\\Myweb\\testscene.unity3d");38             Console.WriteLine(md5);39             Console.WriteLine(b);40             Console.ReadKey();41             42         }43     }44 }

 

转载于:https://www.cnblogs.com/nsky/p/4451317.html

你可能感兴趣的文章
P1060-开心的金明
查看>>
P1164-小A点菜
查看>>
codeforces-1201 C Maximum Median
查看>>
P1064-金明的预算方案
查看>>
P1020-导弹拦截
查看>>
微信小程序的日期选择器
查看>>
图解HTTP---------------------------------------4
查看>>
Mysql关键字之Group By(一)
查看>>
MIME类型对应表
查看>>
受限玻尔兹曼机(RBM)学习笔记(五)梯度计算公式
查看>>
延时加载
查看>>
制作页面屏蔽层
查看>>
Android下的单例模式
查看>>
android的task任务栈
查看>>
thinkphp在linux下save方法失效原因
查看>>
去掉UItableview headerview黏性(sticky)
查看>>
【Android进阶】Junit单元測试环境搭建以及简单有用
查看>>
C# winform中自定义用户控件 然后在页面中调用用户控件的事件
查看>>
python 列表赋值和列表 sort 方法注意的问题
查看>>
【转载】web前端工程师入门须知
查看>>