Выходные данные шифрования CryptoJS AES не совпадают

У меня проблема с CryptoJS.

Я попытался зашифровать строку, но она дает другой результат.

Строка: «тестовое сообщение» Ключ: «123456»

Это тестовый код, который я пытался запустить

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script>
   var encrypted = CryptoJS.AES.encrypt("test message", "123456");


   alert(encrypted);              //U2FsdGVkX19Nf4gjPS3MUcbKBD10P/Ty/4EwUF1PMhc=
</script>

и он вернул вывод U2FsdGVkX19Nf4gjPS3MUcbKBD10P / Ty / 4EwUF1PMhc =

Но на этом веб-сайте http://aesencryption.net/ в результате я получаю executeuBaIGS0AqxwyXoPCgw ==.

Как мне использовать CryptoJS для генерации зашифрованного вывода в виде executeuBaIGS0AqxwyXoPCgw ==?


person Ralph    schedule 12.08.2015    source источник
comment
123456 не является допустимым ключом для AES. Он должен быть длиной 16, 24 или 32 байта. Как фактический ключ получается из этого пароля? Какой режим работы используется по умолчанию на этом сайте?   -  person Artjom B.    schedule 12.08.2015


Ответы (1)


Эти сайты плохие, потому что они не говорят вам, что на самом деле происходит, когда вы что-то шифруете. Два примера кода под онлайн-шифрованием различаются и не дают того же результата, что и онлайн-шифрование.

Кажется, что этот ответ предоставляет рабочий код на C # для этого сайта. Если это правда, то вы не можете воспроизвести это в CryptoJS, потому что CryptoJS поддерживает только AES, тогда как в этом примере кода C # используется Rijndael (обратите внимание на размер блока 256 бит).

AES определен только для фиксированного размера блока 128 бит, но Rijndael поддерживает размеры блока 128, 192 и 256 бит. Оба поддерживают размеры ключей 128, 192 и 256 бит. CryptoJS фактически реализует только AES, но этот сайт не использует AES, несмотря на его название.

person Artjom B.    schedule 12.08.2015