@star_trek_voyager

Реализация CR4 на C#?

решил шифрование с использованием алгоритма RC4 , нашел этот пост
и взял от туда код .
вот так я передаю данные коду :
byte[] pass = ASCIIEncoding.Unicode.GetBytes(TBpass.Text);
RC4 encoder = new RC4(pass);
string textCrypt = TBtext.Text;
byte[] ByteCrypt = ASCIIEncoding.Unicode.GetBytes(textCrypt);
byte[] result = encoder.Encode(ByteCrypt, ByteCrypt.Length);
string strout = UTF8Encoding.Unicode.GetString(result, 0, result.Length);
TBtext.Text = strout;

текст: 1111111111111111111111111111111111111111111111111111111111111111111111111111111111
ключ: 123456
вывод: 藰죻쿝職郹萴⋛㤮쒇ǯ남ᥣ퇙৫༨楁�ꑅṼ띟䷺㾼డ昛Ⱄ垱兲맯᧘无⣂站�๳䣆⒗鷺뛲멵㪀庢굪׽蠆଻䧕勃㧽倪퉵䀨忀㔮獐蝗돖ꍛⰗᘏႣ䭀䃊槟⟦⌈糔㇅樈㲰얋ഝ瞮㘧
при попытке декодировать выдает следующее: 1111111111111111▹111111111111111111⊅1111111111111111111111111111111111111111111111

в чем проблема ?
  • Вопрос задан
  • 477 просмотров
Пригласить эксперта
Ответы на вопрос 2
tomnolane
@tomnolane
профессиональный разработчик
посмотрите на строчки.... у себя в коде...
byte[] ByteCrypt = ASCIIEncoding

string strout = UTF8Encoding

byte[] pass = ASCIIEncoding.Unicode.GetBytes(TBpass.Text);
RC4 encoder = new RC4(pass);
string textCrypt = TBtext.Text;
byte[] ByteCrypt = ASCIIEncoding.Unicode.GetBytes(textCrypt);
byte[] result = encoder.Encode(ByteCrypt, ByteCrypt.Length);
string strout = ASCIIEncoding.Unicode.GetString(result, 0, result.Length); // UTF8Encoding поменять на ASCIIEncoding
TBtext.Text = strout;


п.с. не тестил... но по нему у вас разная кодировка...

п.с.с. в вашей ссылке на сайт(статью) кусок кода:
byte[] key = ASCIIEncoding.ASCII.GetBytes("Key");

RC4 encoder = new RC4(key);
string testString = "Plaintext";
byte[] testBytes = ASCIIEncoding.ASCII.GetBytes(testString);
byte[] result = encoder.Encode(testBytes, testBytes.Length);

RC4 decoder = new RC4(key);
byte[] decryptedBytes = decoder.Decode(result, result.Length);
string decryptedString = ASCIIEncoding.ASCII.GetString(decryptedBytes);


нигде не смешиваются кодировки ASCIIEncoding и UTF8Encoding (а у вас в коде смешиваются)
Ответ написан
Комментировать
Код по приведенной вами ссылке не тестировал, но успешно реализовывал данный алгоритм по коду из вики - https://ru.wikibooks.org/wiki/%D0%A0%D0%B5%D0%B0%D...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы