[英]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.