AES шифрование / дешифрование Delphi и PHP

Мое приложение Delphi использует TurboPower LockBox 3 для шифрования незашифрованной информации с использованием AES 256. Теперь я хочу расшифровать эту информацию с помощью PHP. Но TurboPower LockBox 3 имеет некоторые проблемы с совместимостью.

Пожалуйста, проверьте сообщение автора LockBox 3 здесь для деталей:

http://lockbox.seanbdurkin.id.au/tiki-view_forum_thread.php?comments_parentId=363&topics_offset=1

И аналогичный пост на Stackru

Безопасное решение для шифрования пар ключей в Delphi & PHP?

В LockBox 3 во время шифрования вы устанавливаете пароль. Этот пароль затем используется в качестве начального числа для генерации ключа и iv. Так кто-нибудь смог имитировать метод генерации ключей на стороне PHP? Или есть какой-нибудь способ, которым я могу получить Key/IV, сгенерированный LockBox 3, и поместить его в мой PHP-код, чтобы файл можно было расшифровать?

1 ответ

Решение

IV

Как говорилось ранее, одноразовый номер IV добавляется к сообщению зашифрованного текста. Таким образом, чтобы получить его на стороне PHP, просто извлеките первые 8 байтов.

Ключи

Вам необходимо решить, является ли общий секрет в формате строки пароля или в формате двоичного ключа. Симметричный класс Key (TSymetricKey) имеет метод SaveToStream(), который работает так, как вы ожидаете. Компонент TCodec имеет свойство Key, которое будет доступно после установки шифра, режима цепочки и пароля.

Все методы являются самодокументируемыми и выполняют в основном то, что читают, однако, если вам нужен демонстрационный код, сохраняющий ключ в потоке, дайте мне знать.

Другие вопросы по тегам