Как кодировать Ruby-эквивалент функции PHP mcrypt_encrypt () - PullRequest
0 голосов
/ 23 июня 2010

Если я напишу следующий код

mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $raw, MCRYPT_MODE_CBC, $iv);

Как писать в рубине?

Ответы [ 4 ]

1 голос
/ 23 июня 2010

Вот эквивалент Ruby с использованием OpenSSL,

  cipher = OpenSSL::Cipher::Cipher.new("aes-128-cbc")
  cipher.encrypt
  cipher.key = key
  cipher.iv = iv
  encrypted = cipher.update(raw)
  encrypted << cipher.final
1 голос
/ 23 июня 2010

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

http://stuff -things.net / 2008/02/05 / шифровать-много-из-чувствительных-данных-с-рубин-на-рельсы /

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

MCRYPT_RIJNDAEL_128 обозначает размер блока 16 байтов и возможны 3 размера ключа

  1. ключ $ ~ 16 байт (AES-128)

    cipher = OpenSSL::Cipher::Cipher.new("aes-128-cbc")

  2. ключ $ ~ 24 байта (AES-192)

    cipher = OpenSSL::Cipher::Cipher.new("aes-192-cbc")

  3. ключ $ ~ 32 байта (AES-256)

    cipher = OpenSSL::Cipher::Cipher.new("aes-256-cbc")

И затем мы можем использовать следующий код для шифрования

cipher.encrypt
cipher.key = key
cipher.iv = iv
encrypted = cipher.update(raw)
encrypted << cipher.final
0 голосов
/ 23 июня 2010

Может ezcrypto помочь? По умолчанию он использует стандартные aes-128-cbc, но знает другие алгоритмы.

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