목표 :
네트워크에있는 데이터는 우리가 암호화를 필요로하므로, 대비가 변경되지 않은, 변화를 차단해야합니다 우리가 원래의 데이터로 데이터를 보내도록 할 수있다.
A, MD5 검증
1, 원칙 :
클라이언트 B로 데이터를 전송하는 클라이언트 A는, 라인 잘 합의 된 키를 .
네트워크에서, 클라이언트 A가 데이터 및 MD5 (키 + 데이터) 인증 코드를 계산 클라이언트에 B.
: 클라이언트가 수신 한 후, 데이터 B는 MD5 인증 코드를 계산되고 , 수신 데이터 + 키 및 인증 코드 코드가 전송이 비교를 수행.
데이터가 수정되지 않은 경우에, 상기 계산 된 인증 코드는 동일 할 것이다.
2, 코드
private void Start()
{
string data = "hello world"; //数据
string key = "123"; //秘钥
Md5Sum(data + key); // 返回MD5验证码
}
public static string Md5Sum(string strToEncrypt)
{
// 将需要加密的字符串转为byte数组
byte[] bs = Encoding.UTF8.GetBytes(strToEncrypt);
// 创建md5 对象
System.Security.Cryptography.MD5 md5;
md5 = System.Security.Cryptography.MD5.Create();
// 生成16位的二进制校验码
byte[] hashBytes = md5.ComputeHash(bs);
// 转为32位字符串
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');
}