Доброго времени суток, %Habrauser%!
Нужно закодировать/раскодировать простой текст с помощью AES-256 шифрования. Простейший код:
crypto:start(),
Key = <<"aj2lbj2k4kljaj3k2l4k3l4kk2l3jj32">>,
IVec = <<0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0>>,
Text = <<"testtesttesttesttesttest">>,
Enc = crypto:block_encrypt(aes_cbc256, Key, IVec, Text),
Res = crypto:block_decrypt(aes_cbc256, Key, IVec, Enc),
io:format("Res: ~s~n", [binary_to_list(Res)]).
выдаёт ошибку:
** exception error: bad argument
in function crypto:aes_cbc_crypt/4
called as crypto:aes_cbc_crypt(<<"aj2lbj2k4kljaj3k2l4k3l4kk2l3jj32">>,
<<0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0>>,
<<"testtesttesttesttesttest">>,true)
Немного подебажив я обнаружил, что проблема только для строки менее 32 символов. В криптографии я не силён. Можно как-то сделать, чтобы кодировался/раскодировался текст любой длинны.