1.概念
MD5在软件行业是再常见不过的一个词了,即使你从没使用过它,也不知道它到底是个什么东西,但你肯定听过这个词。
那么到底什么是MD5呢?是加密算法吗?不是的,它是一种信息摘要算法,它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串(这个特殊的字符串就被称之为摘要,我理解就是从文件中摘一些信息片段加工而来),并且一个文件所对应的MD5摘要是固定的,当文件内容变化后,其MD5值也会不一样(虽然理论上来说也有可能会一样,但概率极小),因此,在应用中经常使用MD5值来验证一段数据有没有被篡改。比如,在数据的发送方将原始数据生成出MD5值,然后把原始数据连同其MD5值一起传给接收方,接收该收到数据后,先将原始数据用MD5算法生成摘要信息,然后再将此摘要信息与发送方发过来的摘要信息进行比较,如果一致就认为原始数据没有被修改,否则原始数据就是被修改过了。
using UnityEngine;
using System.Collections.Generic;
using System.Text;
using System;
public class Md5 : MonoBehaviour {
public static string Md5Sum(string strToEncrypt)
{
byte[] bs = UTF8Encoding.UTF8.GetBytes (strToEncrypt);
System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5CryptoServiceProvider.Create ();
byte[] hashBytes = md5.ComputeHash (bs);
string hashString = "";
for (int i = 0; i < hashBytes.Length; i++) {
hashString += System.Convert.ToString (hashBytes [i], 16).PadLeft (2, '0');
}
return hashString.PadLeft (32, '0');
}
}