Если я напишу следующий код
mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $raw, MCRYPT_MODE_CBC, $iv);
Как писать в рубине?
Вот эквивалент 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
Для этого вы можете использовать библиотеку openssl. Я думаю, что вам нужно здесь для шифрования симметричного ключа:
http://stuff -things.net / 2008/02/05 / шифровать-много-из-чувствительных-данных-с-рубин-на-рельсы /
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
Может ezcrypto помочь? По умолчанию он использует стандартные aes-128-cbc, но знает другие алгоритмы.