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 № 1Hier 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
$ key ~ 16 Bytes (AES-128)
cipher = OpenSSL::Cipher::Cipher.new("aes-128-cbc")
$ key ~ 24 Bytes (AES-192)
cipher = OpenSSL::Cipher::Cipher.new("aes-192-cbc")
$ 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