Я хочу использовать шифрование PGP для шифрования CSV-файлов, я генерирую через PHP-скрипт, а затем отправляю этот файл клиенту по электронной почте. Клиент предоставит мне ключ шифрования, который мне нужно использовать для файлов шифрования.
I Googled о PGP и нашел, что это довольно хорошая конфиденциальность, также я нашел OpenPGP http://www.openpgp.org/ и GnuPG http://www.gnupg.org/ Что это за два типа PGP? и какой я должен использовать?
Также как шифровать файлы, используя PGP в PHP, с ключом, который предоставит мой клиент?
Я впервые услышал этот термин, может кто-нибудь помочь в понимании этого и реализации этого в PHP.
Итак, что вы хотите сделать, это зашифровать ключ OpenPGP . Какая реализация OpenPGP, которую ваш клиент использует для дешифрования данных, не важна для вас. С PHP, обычно используется GnuPG, и есть встроенные интерфейсы.
Используйте интерфейс GnuPG , который является расширением, которое можно установить для PHP.
Сначала импортируйте ключ, где $keydata
является бронированным открытым ключом ASCII:
<?php $gpg = new gnupg(); $info = $gpg -> import($keydata); print_r($info); ?>
Затем используйте этот ключ для шифрования данных, на этот раз используя отпечаток ключа клиента:
<?php $gpg = new gnupg(); $gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC"); $enc = $gpg -> encrypt("just a test"); echo $enc; ?>
Если вы хотите зашифровать файлы, прочитайте и передайте их для encrypt()
. Обязательно используйте хотя бы длинные идентификаторы ключей (например, DEADBEEFDEADBEEF
), лучше отпечатки пальцев (как в примере) при обращении к клавишам; и никогда не используйте короткие идентификаторы ключей ( DEADBEEF
), поскольку они уязвимы для столкновений .
Это более подробный пример для того, чтобы сделать оба добавленные пользователем в руководстве PHP.