как расшифровать строку в c # - PullRequest
0 голосов
/ 27 ноября 2011

Я знаю, как зашифровать тест, но не знаю, как его расшифровать.

Может кто-нибудь сказать, пожалуйста, как мне это сделать.

Код, который я использую для шифрования строки:

string encoded = Convert.ToBase64String(Encoding.Unicode.GetBytes("USERNAME"));
string decript = Convert.ToString(encoded);
Decrypt(encoded);

Я не знаю, как расшифровать.

Ответы [ 4 ]

6 голосов
/ 27 ноября 2011

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

Во-вторых, вам просто нужно повернуть процесс вспять, используя двойник метода Convert, который вы используете для кодирования.

 string decoded = Encoding.Unicode.GetString( Convert.FromBase64String( encoded ) );
5 голосов
/ 27 ноября 2011

Base64 - это не «шифрование» - это просто способ представления произвольных двоичных данных в виде полностью строки ASCII.

Обратное значение Convert.ToBase64String - это просто Convert.FromBase64String,но важно понимать, что это , а не метод шифрования.(Также стоит подумать о том, почему у вас есть эта средняя линия - что вы ожидаете от Convert.ToString, когда она передаст строку?)

2 голосов
/ 27 ноября 2011

Вы пробовали Convert.FromBase64String()?

1 голос
/ 27 ноября 2011

Этот код используется для кодирования / декодирования строки в / из Base64:

string inputText = "This is some text.";
byte [] bytesToEncode = Encoding.Unicode.GetBytes (inputText);

string encodedText = Convert.ToBase64String (bytesToEncode);

byte [] decodedBytes = Convert.FromBase64String (encodedText);
string decodedText = Encoding.Unicode.GetString (decodedBytes);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...