Здравствуйте! У меня проблемы с шифрованием с использованием массива в качестве ключа и значения с ruby-mcrypt gem .Драгоценный камень позволяет мне использовать массив для ключа отлично, cipher = Mcrypt.new("rijndael-256", :ecb, secret)
работает.Но это даст мне ошибку, когда я попытаюсь зашифровать.Я перепробовал много вещей, но не повезло.Кто-нибудь знает, если Mcrypt просто не любит шифрование с помощью массива?
require 'mcrypt'
def encrypt(plain, secret)
cipher = Mcrypt.new("rijndael-256", :ecb, secret)
cipher.padding = :zeros
encrypted = cipher.encrypt(plain)
p encrypted
encrypted.unpack("H*").first.to_s.upcase
end
array_to_encrypt = [16, 0, 0, 0, 50, 48, 49, 55, 47, 48, 50, 47, 48, 55, 32, 50, 50, 58, 52, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
key_array = [65, 66, 67, 68, 49, 50, 51, 52, 70, 71, 72, 73, 53, 54, 55, 56]
result = encrypt(array_to_encrypt, key_array)
p "RESULT IS #{result}"
Вывод выглядит следующим образом:
Mcrypt::RuntimeError: Could not initialize mcrypt: Key length is not legal.
Я проследил эту ошибку до здесь в самоцвете ruby-mcrypt
, но не достаточно, чтобы понять, почему я получаю сообщение об ошибке.Любая помощь или идеи будут удивительными.Спасибо!