/ / Ako kódovať Ruby ekvivalent PHP funkcie mcrypt_encrypt () - ruby, šifrovanie

Ako kódovať Ruby ekvivalent PHP funkcie mcrypt_encrypt () - rubín, šifrovanie

Ak napíšem nasledujúci kód

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

Ako písať v rubíne?

odpovede:

1 pre odpoveď č. 1

Tu je Ruby ekvivalent pomocou 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 pre odpoveď č. 2

K tomu môžete použiť knižnicu openssl. Myslím, že tu potrebujete symetrické šifrovanie kľúčov:

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


0 pre odpoveď č. 3

Môcť ezcrypto Pomoc? Predvolene používa štandardné aes-128-cbc, ale pozná ďalšie algoritmy.


0 pre odpoveď č. 4

MCRYPT_RIJNDAEL_128 označuje blokovanie 16 možných bajtov a 3 veľkosti kľúčov

  1. $ key ~ 16 bajtov (AES-128)

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

  2. $ key ~ 24 bajtov (AES-192)

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

  3. $ key ~ 32 bajtov (AES-256)

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

A potom môžeme použiť nasledujúci kód na vykonanie šifrovania

cipher.encrypt
cipher.key = key
cipher.iv = iv
encrypted = cipher.update(raw)
encrypted << cipher.final