Я взаимодействую с API, который требует от меня шифрования чего-либо с помощью AES-128
в режиме CBC
.
Они сказали, что для ключа и IV мне нужно использовать 16-байтовый хэш MD5из строки, которую они мне дают.
Я некоторое время гуглил и похоже, что все MD5 составляет 16 байт, так почему же это не работает?
key = Digest::MD5.hexdigest(temp_token)
cipher = OpenSSL::Cipher::AES.new(128, :CBC)
cipher.encrypt
cipher.key = key # ArgumentError: key must be 16 bytes
cipher.iv = key # ArgumentError: iv must be 16 bytes
encrypted = cipher.update(joined_params) + cipher.final
Base64.urlsafe_encode64(encrypted)