Сейчас на форуме: jinoweb, bartolomeo, rmn (+4 невидимых) |
eXeL@B —› Программирование —› PHP DELPHI AES |
Посл.ответ | Сообщение |
|
Создано: 23 мая 2014 01:31 · Поправил: Vostol · Личное сообщение · #1 Доброго времени суток форумчане! Вот я и созрел для своего первого поста в этом разделе. Проблема следующего характера. AES шифрование. Code:
Дает результат: Code:
по байтам: Code:
Реализация на CryptAPI получается не 7 а 16 байт: Code:
по байтам: Code:
То есть наблюдаются те же 7 байт, но с довеском. Дешифровка производится с помощью CAPI. При попытке дешифровки варианта, получаемого из openssl_encrypt (7 байт) получаю "Поврежденные данные" При дешифровке 16 байт из CAPI все Ок. Примеры готов предоставить. |
|
Создано: 23 мая 2014 09:27 · Личное сообщение · #2 |
|
Создано: 23 мая 2014 09:30 · Личное сообщение · #3 |
|
Создано: 24 мая 2014 00:03 · Личное сообщение · #4 r_e пишет: Для CAPI это можно решить дополняя шифроблок нулями до размера блока и уже потом делать декрипт и отрезать нужную длину. Я не стал об этом писать, но я так пробовал, не прокатило. TryAga1n пишет: OPENSSL_ZERO_PADDING Попробую, но не хотелось бы на стороне php что то менять. Спасибо за ответы, о результатах отпишусь. |
|
Создано: 24 мая 2014 01:25 · Личное сообщение · #5 Vostol пишет: Я не стал об этом писать, но я так пробовал, не прокатило. Не может такого быть ))) уверен что вы что-то не то отрезаете или перемудрили с base64. cfb = aes(key, iv) ^ msg соответственно, перед операцией msg нужно выровнять на границу блока, а после операции можно безболезненно отрезать лишнее. ----- старый пень | Сообщение посчитали полезным: Vostol |
|
Создано: 24 мая 2014 02:45 · Поправил: Vostol · Личное сообщение · #6 Данные для примера те же. Key = 'key' Data = '5QuWpDfffw==' IV = 'aiDuqu5leij9ooHa' Несколько упростил код. Code:
RaiseLastOSError выдает ошибку - Плохие данные, если CryptDecrypt отработал без ошибок, в dataLen была бы реальная длина - 7 байт, но тут в ней 16, После отработки в Buffer - результат test123 + довесок на 9 байт. UPD. Проблема решилась установкой Final в False, перестало вызывать ошибку. Всем спасибо. Можно закрыть. |
eXeL@B —› Программирование —› PHP DELPHI AES |