Ако напиша следния код
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 възможни размера на ключовете
$ ключ ~ 16 байта (AES-128)
cipher = OpenSSL::Cipher::Cipher.new("aes-128-cbc")
$ ключ ~ 24 байта (AES-192)
cipher = OpenSSL::Cipher::Cipher.new("aes-192-cbc")
$ ключ ~ 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