/ / Как да кодираме Ruby еквивалента на PHP mcrypt_encrypt () функцията - рубин, криптиране

Как да кодирате Ruby еквивалент на mcrypt_encrypt () функцията на PHP - рубин, криптиране

Ако напиша следния код

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

Как да пиша с рубин?

Отговори:

1 за отговор № 1

Ето еквивалента на 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 за отговор № 2

Можете да използвате библиотеката openssl за това. Мисля, че това, от което имате нужда, е тук за симетрично криптиране на ключове:

http://stuff-things.net/2008/02/05/encrypting-lots-of-sensitive-data-with-ruby-on-rails/


0 за отговор № 3

Мога ezcrypto помогне? По подразбиране използва стандартен aes-128-cbc, но знае други алгоритми.


0 за отговор № 4

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