Intereting Posts
yii cgridview ajaxlink работает только на первой странице Удалите часть строки, но только когда она находится в конце строки Передача зашифрованного сервера данных на сервер, между 2 скриптами PHP Передача нескольких переменных в представление? Оптимизация запроса SELECT … UNION … с ORDER и LIMIT в таблице с 5M + строками FCM – реализация от curl_init () в GAE PHP, Лучший способ установить значение в многомерном массиве, когда путь является динамическим? Изучение OO-кодирования с помощью PHP, статические! = Выражения, но в руководстве PHP говорится, что все, что имеет значение, является выражением, смущенным Как отслеживать, откуда Magento вызывает шаблоны? шаг копирования, написанный на stackoverflow, для установки FFMPEG на неработающий wamp Генератор регулярных выражений PHP Предупреждение: preg_match () : Неизвестный модификатор '(' Как получить результаты в виде многомерного массива из mySQL и PHP? Amazon S3 избегает перезаписи объектов с тем же именем PHP вставляет несколько флажков и массивов текстовых полей в базу данных MySQL

Шифровать файлы с помощью PGP в PHP?

Я хочу использовать шифрование PGP для шифрования CSV-файлов, я генерирую через PHP-скрипт, а затем отправляю этот файл клиенту по электронной почте. Клиент предоставит мне ключ шифрования, который мне нужно использовать для файлов шифрования.

I Googled о PGP и нашел, что это довольно хорошая конфиденциальность, также я нашел OpenPGP http://www.openpgp.org/ и GnuPG http://www.gnupg.org/ Что это за два типа PGP? и какой я должен использовать?

Также как шифровать файлы, используя PGP в PHP, с ключом, который предоставит мой клиент?

Я впервые услышал этот термин, может кто-нибудь помочь в понимании этого и реализации этого в PHP.

Вопрос 1: О PGP

  • PGP (Pretty Good Privacy) является продуктом и торговой маркой Symantec Corporation (они купили его несколько лет назад).
  • OpenPGP – это стандарт, используемый PGP.
  • GnuPG (Gnu Privacy Guard) представляет собой бесплатную реализацию PGP с открытым исходным кодом.

Итак, что вы хотите сделать, это зашифровать ключ OpenPGP . Какая реализация OpenPGP, которую ваш клиент использует для дешифрования данных, не важна для вас. С PHP, обычно используется GnuPG, и есть встроенные интерфейсы.

Вопрос 2: Использование GnuPG в PHP

Используйте интерфейс 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.