簡體   English   中英

十六進制字符串的字節轉換在C#中始終無法使用字母字符“ G”及更高版本

[英]Byte Conversion From Hex String Keeps Failing With Alphabet characters “G” and upwards in C#

我正在嘗試構建一個簡單的XOR函數,該函數從單個字符中解密一個十六進制密鑰。 它適用於多個字符和單個字符...但是只能從“ A”到“ F”。 從“ G”開始,它一直拋出“ FormatException”。

這是有兩個字符串傳遞的問題函數:

    // For Reference:
    // strHexKey = "G";
    // strHexInput = "1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736"

    private string SCXOR_Update(string strHexKey, string strHexInput)
    {
        byte[] buffer1 = hexbuffer(strHexInput);
        byte buffer2 = Convert.ToByte(Convert.ToInt32(strHexKey, 16));
        byte[] result = buffer1;

        for (int i = 0; i < (strHexInput.Length / 2); i++)
        {
            result[i] = (byte)(buffer1[i] ^ buffer2);
        }

        return BitConverter.ToString(result).Replace("-", "");
    }

該異常拋出在“字節緩沖區2”行,僅在從字母“ G”向上前進時發生。

知道我想念的是什么嗎? 一定要瞪着我嗎?!

提前致謝!

十六進制是基數為16的計數系統 它僅由以下數字組成-盡管也經常使用小寫字符:

0123456789ABCDEF

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM