65 lines
2.0 KiB
C#
65 lines
2.0 KiB
C#
namespace CrasyStudio.Core.Common
|
|
{
|
|
/// <summary>
|
|
/// WEBAPI签名帮助类
|
|
/// </summary>
|
|
public static class SecuritySignHelper
|
|
{
|
|
///<summary>
|
|
///Sign签名
|
|
///</summary>
|
|
///<param name="content">内容</param>
|
|
///<param name="keyValue">Appkey</param>
|
|
///<param name="charset">URL编码 </param>
|
|
///<returns>DataSign签名</returns>
|
|
public static string Encrypt(String content, String keyValue, String charset)
|
|
{
|
|
if (keyValue != null)
|
|
{
|
|
return ToBase64(MD5(content + keyValue, charset), charset);
|
|
|
|
}
|
|
return ToBase64(MD5(content, charset), charset);
|
|
}
|
|
///<summary>
|
|
/// 字符串MD5加密
|
|
///</summary>
|
|
///<param name="str">要加密的字符串</param>
|
|
///<param name="charset">编码方式</param>
|
|
///<returns>密文</returns>
|
|
private static string MD5(string str, string charset)
|
|
{
|
|
byte[] buffer = System.Text.Encoding.GetEncoding(charset).GetBytes(str);
|
|
try
|
|
{
|
|
var check = System.Security.Cryptography.MD5.Create();
|
|
byte[] somme = check.ComputeHash(buffer);
|
|
string ret = "";
|
|
foreach (byte a in somme)
|
|
{
|
|
if (a < 16)
|
|
ret += "0" + a.ToString("X");
|
|
else
|
|
ret += a.ToString("X");
|
|
}
|
|
return ret.ToLower();
|
|
}
|
|
catch
|
|
{
|
|
throw;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// base64编码
|
|
/// </summary>
|
|
/// <param name="str">内容</param>
|
|
/// <param name="charset">编码方式</param>
|
|
/// <returns></returns>
|
|
private static string ToBase64(String str, String charset)
|
|
{
|
|
return Convert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str));
|
|
}
|
|
}
|
|
}
|