0 Вопрос: RijndaelManaged расшифровывает зашифрованный ключом 8 байтов

вопрос создан в Wed, May 8, 2019 12:00 AM

У меня есть следующий код, который отлично работает для шифрования и дешифрования в сетевой среде даже с недопустимым ключом для RijndaelManaged, но теперь в netCore он не работает, потому что ему нужен 16-байтовый ключ, я хочу воссоздать ключ, который библиотека в сетевых фреймворках делает с расширением ключа для дешифрования в сетевом ядре приложения, но я не знаю, как

Я обнаружил похожую проблему, но в PHP здесь RijndaelManaged.CreateEncryptor расширение ключа , но это говорит «просто отрубить последние 2 байта», но что? и как мне заполнить остальные байты?

//Code tha works in the framework app
///8 bytes
_key = System.Text.ASCIIEncoding.UTF8.GetBytes("abcdefgh");

//16 bytes
_iv = System.Text.ASCIIEncoding.UTF8.GetBytes("abcdefghijklmnop");
_provider = new RijndaelManaged();
_provider.Mode = CipherMode.CBC;
_provider.KeySize = 128;
_provider.CreateEncryptor(_key, _iv)
    
0
  1. Хм, да, для алгоритма 128-битного шифрования необходим 128-битный ключ. Если вы настаиваете на использовании строки в качестве ключа, то сначала запустите ее с помощью алгоритма хеширования и извлеките из него 16 байтов. У вас все еще есть СПОСОБ менее 128 бит энтропии для вашего шифрования.
    2019-05-08 16: 28: 17Z
  2. Что касается обеспечения совместимости библиотеки с вашим текущим кодом, пробовали ли вы нулевое заполнение оставшихся 8 байтов?
    2019-05-08 16: 29: 09Z
  3. Да, ему нужен ключ на 128 бит, но по какой-то причине он работает с ключом на 64 бита в библиотеке сетевых фреймворков из-за «функции», расширяющей ключ, да, я пытался заполнение нулями последних 8 байтов и в начале тоже, но это не работает
    2019-05-08 18: 49: 10Z
  4. Другие варианты, которые нужно попробовать, - повторить строку дважды или взять последние 8 байтов IV. Если они не работают, вам придется прикусить пулю и изменить старый код /​​алгоритм для правильной работы (но потерять совместимость с существующими паролями).
    2019-05-09 08: 31: 25Z
  5. Небольшое исследование позже, и оно может оказаться полезным для вас: docs.microsoft.com/en-us/dotnet/api/…
    2019-05-09 08: 38: 40Z
0 ответов                              0                         
источник размещен Вот