本文实例为大家分享了.net core使用MD5加密解密字符串的具体代码,供大家参考,具体内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
/// <summary>
/// 加密
/// </summary>
/// <param name="Text">要加密的文本</param>
/// <param name="sKey">秘钥</param>
/// <returns></returns>
public static string Encrypt( string Text, string sKey= "test" )
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte [] inputByteArray;
inputByteArray = Encoding.Default.GetBytes(Text);
des.Key = ASCIIEncoding.ASCII.GetBytes(Md5Hash(sKey).Substring(0,8));
des.IV = ASCIIEncoding.ASCII.GetBytes(Md5Hash(sKey).Substring(0, 8));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach ( byte b in ms.ToArray())
{
ret.AppendFormat( "{0:X2}" , b);
}
md4j= ret.ToString();
return ret.ToString();
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/// <summary>
/// 解密
/// </summary>
/// <param name="Text"></param>
/// <param name="sKey"></param>
/// <returns></returns>
public static string Decrypt( string Text, string sKey = "test" )
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
int len;
len = Text.Length / 2;
byte [] inputByteArray = new byte [len];
int x, i;
for (x = 0; x < len; x++)
{
i = Convert.ToInt32(Text.Substring(x * 2, 2), 16);
inputByteArray[x] = ( byte )i;
}
des.Key = ASCIIEncoding.ASCII.GetBytes(Md5Hash(sKey).Substring(0, 8));
des.IV = ASCIIEncoding.ASCII.GetBytes(Md5Hash(sKey).Substring(0, 8));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return Encoding.Default.GetString(ms.ToArray());
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
/// <summary>
/// 32位MD5加密
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
private static string Md5Hash( string input)
{
MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
byte [] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
StringBuilder sBuilder = new StringBuilder();
for ( int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString( "x2" ));
}
return sBuilder.ToString();
}
|
调用加密 解密看效果
1
2
3
4
5
6
7
|
public static string md4j = "" ;
static void Main( string [] args)
{
//加密
Encrypt( "123456" );
Decrypt(md4j);
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/yuanzijian-ruiec/p/9709674.html