Intereting Posts
повторение всплывающего окна jquery в php Как получить базу данных данных без перезагрузки страницы? php создает многомерный массив из плоского Как проверить, является ли символ буквой или номером? Отображение ошибок входа с помощью PHP Как установить карту изображения в части фонового изображения? Я NetBeans, могу ли я каким-либо образом сохранить отпечаток ключа RSA на удаленном сервере или не подтвердить NetBeans ключ до принятия решения? overrideMimeType альтернатива для IE SOAP API с Barnes и Noble с использованием PHP как мне показать все .jpg картинки в папке, но я хочу только фотографии с сегодняшнего дня PHP XPath, выбрав последний элемент соответствия Laravel 5.2: интегрируйте пакет доверенности, создайте роль и разрешения и получите доступ к нему. php preg_replace удалить тысячу разделителей в строке Как защитить свой форум от спама? Как загрузить большие файлы выше 500 МБ в PHP

Crypto-Js различный вывод из mcrypt. После считывания данных для шифрования

У моего вопроса теперь есть связь с этим одним Crypto-Js разным выходом из mcrypt , поэтому я использовал тот же вопрос, но добавил несколько дополнительных строк, чтобы объяснить это лучше.

Основываясь на моем предыдущем вопросе, который решается SIr Jim (большое спасибо за советы, а также). Он работал частично правильно, так как он показывает тот же результат, но только когда я использую слово «Blader», и если когда-либо я использую другое слово, например «CROW», то вывод между двумя скриптами отличается.

Вот код, который дает сэр Джим, который работает как шарм (я использовал Blader здесь)

$encrypted = "Blader\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a"; $iv = base64_decode('AAAAAAAAAAAAAAAAAAAAAA=='); $key = base64_decode('ITU2NjNhI0tOc2FmZExOTQ=='); $plaintext = mcrypt_encrypt( MCRYPT_RIJNDAEL_128, $key, $encrypted, MCRYPT_MODE_CBC, $iv ); echo base64_encode($plaintext); 

Образец – когда я использую CROW, поскольку данные должны быть закодированы

Вывод в криптографии

 dxt3uyk27U3wRRrzaFGiwQ== 

Вывод в mcrypt

 x9/oeyLZkLkXM7B1Zo+ezg== 

Чтобы решить эту проблему, я удалил padding: CryptoJS.pad.Pkcs7 в cryptoJS, но мой вопрос в том, что, если я не хочу удалять заполнение в cryptoJS?

Все ответы будут высоко оценены.

Вам нужно посмотреть, как работает PKCS # 7 . Он приносит открытый текст до кратного 16 байтам. Если он уже равен 16, он добавляет дополнительные 16 байт.

Для «CROW» в UTF-8 (четыре байта) вы добавили бы еще 12 байтов. Каждый байт будет теперь 12, то есть 12 байт из 12, вместо 10 байт 10 для Blader. Например, попробуйте следующее:

 $encrypted = "CROW\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"; 

Чтобы наложить PKCS # 7, вы можете попробовать что-то вроде этого:

 $encrypted = "CROW"; // Add PKCS#7 padding $pad = 16 - (strlen($encrypted) % 16); $encrypted = $encrypted . str_repeat(chr($pad), $pad); 

(Я бы назвал переменную чем-то иным, кроме $ encrypted, потому что она никогда не хранит зашифрованные данные.)