Шифрование Rijndael в Ruby - PullRequest
1 голос
/ 14 марта 2011

Я совершенно новичок в шифровании, поэтому этот вопрос может быть тривиальным - однако мне пришлось 2 часа гуглить, чтобы понять даже основные термины, так что терпите меня.

Строка, которую мне нужно отправить, - это закодированная строка Base64 зашифрованного объекта JSON. Вот спецификации, которые мне прислали:

  • Метод шифрования: Rijndael
  • Режим шифрования: CBC
  • Режим заполнения: PKCS7
  • Мы предоставим вам пользовательский кодированный код Base64 и код IV.

Я проверил алгоритм Rijndael в crypt, но не вижу, куда подключить IV ... Не уверен, что CBC и PKCS7 по умолчанию - если нет, я тоже не знаю, как их изменить ...

Итак:

  • Может ли крипта легко модифицироваться для поддержки этого материала?
  • Может быть, он уже поддерживает его как есть, просто мое полное отсутствие криптографических знаний не позволяет использовать его должным образом?
  • Если ничего из вышеперечисленного не возможно сделать в Ruby?

Ответы [ 2 ]

3 голосов
/ 14 марта 2011

Я почти сомневаюсь, что они действительно используют Рейндаэль.Вероятно, они используют AES (который является подмножеством Rijndael с фиксированным размером блока 128 бит и только тремя стандартизированными размерами ключа (128,192 и 256 бит)).Без их предоставления размеров блоков и ключей вы в любом случае не можете быть уверены, что вы, вероятно, предположите AES-128, но в лучшем случае их спецификация неполна.

IV связан не с алгоритмом шифрования, а с режимом цепочки, вваш случай CBC.

AES, CBC, PKCS7 доступны в Ruby через OpenSSL, не должно быть особых проблем.

Редактировать: люди, думающие, что они используют Rijndael, заставляют меня думать, что они используют .NET, в этом случае этот вопрос должен решить ваши проблемы: Как декодировать Rijndael в ruby ​​(закодировано в VB.net)

0 голосов
/ 07 августа 2014

Crypt :: Rijndael

Теперь он включен в ruby ​​и может легко расшифровать Rijndael.

...