Использование openssl с C # - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь выполнить эту задачу: https://cryptopals.com/sets/1/challenges/7, и у меня возникают некоторые проблемы при работе с библиотекой openssl.net, найденной здесь: http://openssl -net.sourceforge.net /

Я просмотрел стандартную документацию OpenSSL и немного документации, доступной для библиотеки openssl.net, и мне не удалось понять, как использовать функциональность Openssl Ciphers, как описано в задании («Самый простойспособ: используйте OpenSSL :: Cipher и передайте ему AES-128-ECB в качестве шифра. ")

Кто-нибудь знает подобную библиотеку с большим количеством документации, с которой я мог бы работать, или кто-то может дать мнепример функции шифрования или дешифрования OpenSSL :: Cipher для начала?

1 Ответ

0 голосов
/ 06 июня 2018

Вам не нужен OpenSsl для этой простой проблемы.Библиотеки .NET более чем достаточно:

using (var aes = new AesManaged())
{
    byte[] key = Encoding.ASCII.GetBytes("YELLOW SUBMARINE");
    aes.Key = key;
    aes.Mode = CipherMode.ECB;

    string b64 = File.ReadAllText("7.txt");
    byte[] bytes = Convert.FromBase64String(b64);

    using (var decryptor = aes.CreateDecryptor())
    {
        byte[] result = decryptor.TransformFinalBlock(bytes, 0, bytes.Length);
        string text = Encoding.ASCII.GetString(result);
    }
}

Обратите внимание, что обычно я стараюсь не использовать Encoding.ASCII (и я предпочитаю использовать Encoding.UTF8), потому что в этом мире мало что действительно является ASCII...Но эта проблема вроде бы одна из таких: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...