У меня вопрос по поводу Encrypt Decrypt in Rails
и Laravel 5
Корпус:
Я хочу зашифровать некоторые данные в Rails, и иногда данные будут расшифровываться в Laravel. Я уже читал, как Laravel шифрует поток с помощью HMAC sha256, SAE-256-CBC
и выполняет поток в Rails.
Но, к сожалению, Laravel не может расшифровать
Вот мой код:
@cipher = OpenSSL::Cipher.new('aes-256-cbc')
@key = ENV['LARAVEL_APP_KEY']
...
@cipher.encrypt
@cipher.key = Base64.decode64(@key)
iv = @cipher.random_iv
@cipher.iv = iv
encrypted = @cipher.update(PHP.serialize(string)) + @cipher.final
iv = base64_encode(iv)
encrypted = base64_encode(encrypted)
mac = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), iv + encrypted, Base64.decode64(@key))
hash = { iv: iv, value: encrypted, mac: mac }
base64_encode(hash.to_json)
- У
APP_KEY
уже есть то же самое между Rails и Laravel
- Ожидаемый результат: Rails
Encrypt 1000
, Laravel тоже получит 1000
- Реальный результат: Rails
Encrypt 1000
, Laravel получает шифрование (например: eyfasffksffadsfreqw)
Пожалуйста, помогите! Большое спасибо!