Что такое PGP писать не буду, скорее всего данную статью найдут те кто уже знает что это и для чего это.
Настройка:
1) Установка расширения PGP в PHP:
1. apt-get install php5-dev
2. apt-get install gnupg libgpgme11 libgpgme11-dev
3. pecl install gnupg
4. echo extension=gnupg.so > /etc/php5/mods-available/gnupg.iniecho extension=gnupg.so > /etc/php5/mods-available/gnupg.ini
5. php5enmod gnupg
6. service ngnix\apache restart
2) Используем как библиотеку:
class OpenPgp {
private function getGnupg()
{
if(!class_exists(‘gnupg’)){
throw new Exception(‘install gnupg please!’);
} else {
$gpg = new gnupg();
$gpg->seterrormode(gnupg::ERROR_EXCEPTION);
return $gpg;
}
}public static function decrypt($message, $private_key)
{
$gpg = self::getGnupg();
$private_key = $gpg -> import($private_key);
$gpg -> addsignkey($private_key[‘fingerprint’]);
$enc = $gpg -> decrypt($message);
if(!$enc){
return $gpg -> geterror();
} else {
return $enc;
}
}public static function encrypt($message, $public_key)
{
try{
$gpg = self::getGnupg();
$public_key = $gpg -> import($public_key);
$gpg -> addencryptkey($public_key[‘fingerprint’]);
$enc = $gpg -> encrypt($message);
}catch (Exception $e) {
return $e->getmessage();
}return $enc;
}
}
Думаю итак всё понятно из кода.
Итого вам нужно лишь создать публичный,приватный ключи.
Остальное всё сделает библиотека OpenPGP.