/ / Come codificare l'equivalente di Ruby della funzione mcrypt_encrypt () di PHP: ruby, encryption

Come codificare l'equivalente di Ruby della funzione mcrypt_encrypt () di PHP: ruby, encryption

Se scrivo il seguente codice

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

Come scrivere in rubino?

risposte:

1 per risposta № 1

Ecco l'equivalente di Ruby usando 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 per risposta № 2

Puoi usare la libreria openssl per questo. Penso che ciò di cui hai bisogno è qui per la crittografia a chiave simmetrica:

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


0 per risposta № 3

Può ezcrypto Aiuto? Di default usa standard aes-128-cbc ma conosce altri algoritmi.


0 per risposta № 4

MCRYPT_RIJNDAEL_128 indica che sono possibili blocchi 16 byte e 3 dimensioni chiave

  1. $ chiave ~ 16 byte (AES-128)

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

  2. $ chiave ~ 24 byte (AES-192)

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

  3. $ chiave ~ 32 byte (AES-256)

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

E poi possiamo usare il seguente codice per eseguire la crittografia

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