关于c#:如何在16字节数组中存储32位十六进制十进制数字?


How to store 32 hex decimal digits in 16 bytes array?

本问题已经有最佳答案,请猛点这里访问。

我正在使用三重DES算法进行加密。在执行此操作时,我需要传递十六进制十进制(32个字符)密钥。当我将其转换为字节数组时,它将存储在32个字节中。但该算法的输入密钥应仅为16个字节。所以我的问题是如何在16个字节数组中存储32个十六进制十进制数字?


您所追求的可能与此扩展方法类似

1
2
3
4
5
6
7
8
9
10
public static byte[] HexToByteArray(this string hex)
    {
        hex = hex.Replace("","").Replace("-","");

        var numberChars = hex.Length;
        var bytes = new byte[numberChars / 2];
        for (var i = 0; i < numberChars; i += 2)
            bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
        return bytes;
    }

您有一个看起来像"a123ff25"的字符串,您希望将该字符串中的每个2字符块视为十六进制数,并从中得到一个字节数组,该数组的长度是原始字符串的一半…