Я создаю приложение C#, которое зашифровывает текст и отображает результат в текстовом поле с использованием System.Security.Cryptography.Rijndael
, чтобы получатель копировал результаты и расшифровывал их с использованием того же ключа.Не удается преобразовать из байта в строку
Проблема возникает, когда я преобразовываю зашифрованный текст из байта [], возвращаемого функцией EncryptStringToBytes
, в строку, которая может быть отображена в текстовом поле для копирования и дешифрования позже.
Я использовал приведенные ниже методы преобразования, но ни один из них не смог отобразить содержательную строку, которая может быть использована позже для дешифрования и может быть повторно преобразована в форму ОРИГИНАЛЬНОГО байта, возвращенную ранее с EncryptStringToBytes
.
Ниже приведены методы, используемые для выполнения преобразования:
Преобразование из байта [] в строку, чтобы отображаться в TextBox:
textBox3.Text = Encoding.Default.GetString(encryptionResult)
Преобразование из строки скопированного из TextBox в байте [], чтобы быть отправлены в качестве аргумента DecryptStringFromBytes
для того, чтобы завершить процесс decrytion:
byte[] textToByte = Encoding.Default.GetBytes(textToDecrypt)
Самый простой способ получить осмысленный текст из любой бинарной последовательности использовать [ «шестнадцатеричной»] (HTTP: // StackOverflow. com/questions/623104/byte-to-hex-string), то есть «87160a20a03daec4adc1934» и тому подобное. Если вы используете кодировщик для получения фактического текста, вы столкнетесь с проблемами с двоичными последовательностями, которые нелегко представить. – bzlm