Как преобразовать поток байтов в текстовую строку? - PullRequest
0 голосов
/ 01 апреля 2011

Я работаю над системой лицензирования для моего приложения.Я хотел бы поместить всю информацию о лицензировании (имя лицензиата, срок действия и включенные функции) в объект, зашифровать этот объект с помощью закрытого ключа, а затем представить зашифрованные данные в виде одной текстовой строки, которую я могу отправить по электронной почте на мойклиенты.

Мне удалось получить зашифрованные данные в поток байтов, но я не знаю, как преобразовать этот поток байтов в текстовое значение - то, что не содержит управляющих символов или пробелов.Кто-нибудь может дать совет, как это сделать?Я изучал класс Encoding, но не могу найти кодировку только для текста.

Я использую Net 2.0 - в основном VB, но я также могу использовать C #.

Ответы [ 3 ]

1 голос
/ 01 апреля 2011

Используйте Base64Encoder для преобразования его в текстовую строку, которую можно декодировать с помощью Base64Decoder.Он отлично подходит для представления произвольных двоичных данных в текстовом формате, только в верхнем и нижнем регистре AZ и от 0 до 9 цифр.

0 голосов
/ 01 апреля 2011

Я нашел Base32 полезным для лицензионных ключей раньше. Есть несколько реализаций C #, связанных с этим ответом . Мой собственный код лицензии основан на этой реализации , которая позволяет избежать неоднозначных символов, чтобы упростить повторную ввод ключей.

0 голосов
/ 01 апреля 2011

BinHex является примером одного из способов сделать это. Это может быть не совсем то, что вы хотите - например, вы можете захотеть закодировать ваши данные так, чтобы невозможно было случайно записать слова в вашей строке, и вы можете или не можете заботиться о максимизации плотности информации. Но это пример, который может помочь вам придумать собственную кодировку.

...