Как переписать PHP openssl_decrypt на Ruby? Уважаемые знатоки PHP, помогите переписать данный код на Ruby при помощи openssl.openssl_decrypt($encrypted, "aes-256-cbc", $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv)
$key представляет из себя текст "abra-cadabra-123", длиной 32 байта.
$iv представляет из себя текст "abra-cadabra-123", длиной 16 байт.
В то же время, openssl не принимает значения key, iv помимо hex.
Есть какие-то особенности в реализации на PHP?

21 Авг 2019 в 06:25
253 +1
0
Ответы
1

В Ruby можно использовать OpenSSL::Cipher для декодирования данных. Ниже приведен пример переписанного кода на Ruby:

require 'openssl'
def decrypt(encrypted, key, iv)
cipher = OpenSSL::Cipher::AES.new(256, :CBC)
cipher.decrypt
cipher.key = key
cipher.iv = iv
cipher.padding = 0
decrypted = cipher.update(encrypted)
decrypted << cipher.final
end
encrypted = "\x1F\x8B\x08\x00\x91\xBD\xF5\x59\x02\xFF..."
key = "abra-cadabra-123"
iv = "abra-cadabra-123"
decrypted = decrypt(encrypted, key, iv)
puts decrypted

Не забудьте заменить encrypted на ваш зашифрованный текст.

20 Апр 2024 в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир