将带有HASH MD5的字符串转换为ToBase64String

时间:2013-12-04 11:46:12

标签: c# hash type-conversion base64 md5

这是我的问题,

我有这个代码接受带密码的干净文本并返回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

1 个答案:

答案 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