Мне нужно декодировать строку в C#. Алгоритм формируется в значениях HEX. Итак, в C# я думаю, мне нужно преобразовать в массив байтов? Я прав ?. Так что я сделал байтовый массив из строки:Как суммировать существующее значение байтового массива с другим значением HEX в C#?
string Encoded = "ENCODEDSTRINGSOMETHING";
byte[] ba = Encoding.Default.GetBytes (Encoded);
Теперь мне нужно изменить каждый байт в массиве байт первым, начиная с суммирования шестнадцатеричного значения (0x20) на первые байты и для каждого следующего байта в массиве я должен заменить 0x01 hex от начала шестнадцатеричного значения 0x20 и суммировать его со следующими байтами в моем массиве ba. Затем мне нужно снова преобразовать результат массива байтов в строку и распечатать. В Python это очень просто:
def decode():
strEncoded = "ENCODEDSTRINGSOMETHING"
strDecoded = ""
counter = 0x20
for ch in strEncoded:
ch_mod = ord(ch) + counter
counter -= 1
strDecoded += chr(ch_mod)
print ("%s" % strDecoded)
if __name__ == '__main__':
decode()
Как я могу сделать это на C#? Большое спасибо.
Не могли бы вы дать нам ожидаемый результат этого примера строки 'ENCODEDSTRINGSOMETHING'? – Pikoh
Кроме того, что должно произойти с символами, выходящими за пределы диапазона печати? –
Бен Абрахам. Это нормально, этого не будет) Строки, которые мне нужно декодировать, находятся в диапазоне. – Falconsl