这是我的问题,
我有这个代码接受带密码的干净文本并返回Base64MD5哈希
private static string GetMd5Base64Pass(string userpwd)
{
MD5 md5 = new MD5CryptoServiceProvider();
return Convert.ToBase64String(md5.ComputeHash(Encoding.ASCII.GetBytes(userpwd)));
}
我需要重用它来接受MD5字符串哈希并在Base64MD5中返回。
我试图这样做:
private static string GetMd5Base64PassMD5(string userpwd)
{
MD5 md5 = new MD5CryptoServiceProvider();
return Convert.ToBase64String(Encoding.ASCII.GetBytes(userpwd));
}
但回报完全不同。
已经尝试将字符串转换为bytearray,但无效。
我需要插入一个32位MD5的字符串,并在Base64String中返回它。
THKS
------------------------------已编辑
示例:
密码是123123:
MD5是:4297f44b13955235245b2497399d7a93
MD5的Base64String是:Qpf0SxOVUjUkWySXOZ16kw ==
我需要
这:Qpf0SxOVUjUkWySXOZ16kw ==
来自
这个哈希字符串 4297f44b13955235245b2497399d7a93
答案 0 :(得分:1)
public static string ConvertHexStringToBase64(string hexString)
{
byte[] buffer = new byte[hexString.Length / 2];
for (int i = 0; i < hexString.Length; i++)
{
buffer[i / 2] = Convert.ToByte(Convert.ToInt32(hexString.Substring(i, 2), 16));
i += 1;
}
string res = Convert.ToBase64String(buffer);
return res;
}
这会收到md5字符串哈希并将其转换为Base64 Hex