/ / Wie man ein Ruby-Äquivalent der Funktion mcrypt_encrypt () von PHP codiert

Wie man das Ruby-Äquivalent der PHP-Funktion mcrypt_encrypt () - Ruby, verschlüsselt

Wenn ich den folgenden Code schreibe

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

Wie schreibe ich in Rubin?

Antworten:

1 für die Antwort № 1

Hier ist Ruby-Äquivalent mit 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 für die Antwort № 2

Sie können dazu die openssl-Bibliothek verwenden. Ich denke, Sie brauchen hier die Verschlüsselung mit symmetrischen Schlüsseln:

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


0 für die Antwort № 3

Kann Ezcrypto Hilfe? Standardmäßig verwendet es Standard aes-128-cbc, kennt aber andere Algorithmen.


0 für die Antwort № 4

MCRYPT_RIJNDAEL_128 gibt die Blockgröße 16 Bytes an und 3 Schlüsselgrößen sind möglich

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

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

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

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

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

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

Und dann können wir den folgenden Code verwenden, um die Verschlüsselung durchzuführen

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