利用C#方法给字符串加密解密
using UnityEngine;
using System;
using System.Security.Cryptography;
using System.Text;
public class Security : MonoBehaviour {
private string miwen = "";
private string jiemi = "";
void OnGUI()
{
if (GUI.Button( new Rect( 50, 50, 200, 50), "加 密"))
{
miwen = "abcdefghijk";//需要加密的字符串
miwen = Encryption(miwen); //调用加密方法加密
print( miwen);
}
if (GUI.Button(new Rect(50, 200, 200, 50), "解 密"))
{
jiemi = Decryption(miwen); //调用解密方法解密
print( jiemi);
}
}
//加密字符串
public string Encryption(string toE)
{
//加密和解密必须采用相同的key,具体自己填写,但是必须为32位
byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678123456781234567812345678");
RijndaelManaged rijndaelManaged = new RijndaelManaged();
rijndaelManaged.Key = keyArray;
rijndaelManaged.Mode = CipherMode.ECB;
rijndaelManaged.Padding = PaddingMode.PKCS7;
ICryptoTransform icryptoTransform = rijndaelManaged.CreateEncryptor();
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toE);
byte[] resultArray = icryptoTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String( resultArray, 0, resultArray.Length);
}
//解密字符串
public string Decryption(string toD)
{
//加密和解密必须采用相同的key,具体值自己填,但是必须为32位
byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678123456781234567812345678");
RijndaelManaged rijndaelManaged = new RijndaelManaged();
rijndaelManaged.Key = keyArray;
rijndaelManaged.Mode = CipherMode.ECB;
rijndaelManaged.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rijndaelManaged.CreateDecryptor();
byte[] toEncryptArray = Convert.FromBase64String(toD);
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return UTF8Encoding.UTF8.GetString(resultArray);
}
}