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, которое будет доступно после установки шифра, режима цепочки и пароля.
Все методы являются самодокументируемыми и выполняют в основном то, что читают, однако, если вам нужен демонстрационный код, сохраняющий ключ в потоке, дайте мне знать.