这段时间在开发项目的过程中,后台接口为了安全性考虑,在请求时会要求好几个字段拼接后进行MD5加密后传入,以下讲述利用MD5相关API进行加密,具体加密的规则(由哪些字段组成)各位可以自己定义,如:从接口获取用户识别身份、当前时间戳等进行规则定义。
引用命名空间:
using System;
using System.Security.Cryptography;
using System.Text;
一、MD5-加密返回16位字符串
/// <summary>
/// MD5 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;
}
二、MD5-加密返回32位字符串(常用)
/// <summary>
/// MD5 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;
}
三、MD5-加密返回64位字符串
/// <summary>
/// MD5 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);
}