unity字符串加密方法
一. 第一种MD5加密
1.1效果如下
1.1 MD5 3种加密 16位 32位 64位
1.2代码如下
using System;
using System.Collections;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
using UnityEngine;
/// <summary>
/// MD5加密
/// </summary>
public class Encrypt_MD5 : MonoBehaviour
{
/// <summary>
/// 加密16位
/// </summary>
/// <param name="_encryptContent">加密的内容</param>
/// <returns></returns>
public static string EncryptMD5_16(string _encryptContent)
{
var md5 = new MD5CryptoServiceProvider();
string t2 = BitConverter.ToString(md5.ComputeHash(Encoding.Default.GetBytes(_encryptContent)), 4, 8);
t2 = t2.Replace("-", "");
return t2;
}
/// <summary>
/// 加密32位
/// </summary>
/// <param name="_encryptContent">加密的内容</param>
/// <returns></returns>
public static string EncryptMD5_32(string _encryptContent)
{
string content_Normal = _encryptContent;
string content_Encrypt = "";
MD5 md5 = MD5.Create();
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(content_Normal));
for (int i = 0; i < s.Length; i++)
{
content_Encrypt = content_Encrypt + s[i].ToString("X2");
}
return content_Encrypt;
}
/// <summary>
/// 加密64位
/// </summary>
/// <param name="_encryptContent">加密的内容</param>
/// <returns></returns>
public static string EncryptMD5_64(string _encryptContent)
{
string content = _encryptContent;
MD5 md5 = MD5.Create();
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(content));
return Convert.ToBase64String(s);
}
void Update()
{
if (Input.GetKeyDown (KeyCode.P))
{
Debug.Log("16加密:" + EncryptMD5_16("123456789"));
Debug.Log("32加密:" + EncryptMD5_32("123456789"));
Debug.Log("64加密:" + EncryptMD5_64("123456789"));
}
}
}
二. 第二种加密方式 Base64方式
2.1 效果如下
2.2 代码如下
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Encrypt_Base64 : MonoBehaviour
{
/// <summary>
/// Base64加密,解密方法
/// </summary>
/// <paramname="str">输入字符串内容</param>
/// <paramname="bol">true-加密,false-解密</param>
public static string ReturnBase64(string str, bool bol)
{
if (bol)
{
return System.Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(str));
}
else
{
try
{
return System.Text.Encoding.Default.GetString(System.Convert.FromBase64String(str));
}
catch (Exception exp)
{
return exp.Message;
}
}
}
void Update()
{
if (Input.GetKeyDown(KeyCode.P))
{
Debug.Log ("加密:"+ReturnBase64("123456789", true));
}
if (Input.GetKeyDown(KeyCode.O))
{
Debug.Log("解密"+ReturnBase64(ReturnBase64("123456789", true), false));
}
}
}
三. 最后总结一下,两种方式都可以加密,但是MD5加密是不可逆的,Base64是加密过后可以再解密出来.
根据需要使用