/// <summary>
/// 字符串MD5加密
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string HashMD5Password(this string input)
{
if (input.IsNullOrBlank()) return string.Empty;
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(input.Trim(), "MD5");
}
/// <summary>
/// Base64 编码
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string EncryBase64(this string input)
{
byte[] bytes = Encoding.UTF8.GetBytes(input);
try
{
return Convert.ToBase64String(bytes);
}
catch
{
return null;
}
}
/// <summary>
/// Base64 解码
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string DecodeBase64(this string input)
{
byte[] bytes = Convert.FromBase64String(input);
try
{
return Encoding.UTF8.GetString(bytes);
}
catch
{
return null;
}
}
/// <summary>
/// DES 加密
/// </summary>
public static string EncryDes(this string value, string keyVal, string ivVal)
{
try
{
byte[] data = Encoding.UTF8.GetBytes(value);
var des = new DESCryptoServiceProvider { Key = Encoding.ASCII.GetBytes(keyVal.Length > 8 ? keyVal.Substring(0, 8) : keyVal), IV = Encoding.ASCII.GetBytes(ivVal.Length > 8 ? ivVal.Substring(0, 8) : ivVal) };
var desencrypt = des.CreateEncryptor();
byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return BitConverter.ToString(result);
}
catch(Exception)
{
throw new Exception("DES加密异常");
//return null;
}
}
/// <summary>
/// DES 解密
/// </summary>
public static string DecodeDes(this string value, string keyVal, string ivVal)
{
try
{
string[] sInput = value.Split("-".ToCharArray());
byte[] data = new byte[sInput.Length];
for (int i = 0; i < sInput.Length; i++)
{
data[i] = byte.Parse(sInput[i], NumberStyles.HexNumber);
}
var des = new DESCryptoServiceProvider { Key = Encoding.ASCII.GetBytes(keyVal.Length > 8 ? keyVal.Substring(0, 8) : keyVal), IV = Encoding.ASCII.GetBytes(ivVal.Length > 8 ? ivVal.Substring(0, 8) : ivVal) };
var desencrypt = des.CreateDecryptor();
byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return Encoding.UTF8.GetString(result);
}
catch (Exception)
{
throw new Exception("DES解密异常");
//return null;
}
}
/// <summary>
/// SHA256加密
/// </summary>
/// <param name="strData"></param>
/// <returns></returns>
public static string EncrySHA256(this string input)
{
byte[] bytValue = System.Text.Encoding.UTF8.GetBytes(input);
try
{
SHA256 sha256 = new SHA256CryptoServiceProvider();
byte[] retVal = sha256.ComputeHash(bytValue);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < retVal.Length; i++)
{
sb.Append(retVal[i].ToString("x2"));
}
return sb.ToString();
}
catch (Exception ex)
{
throw new Exception("GetSHA256HashFromString() fail,error:" + ex.Message);
}
}