PGP шифрование в PHP. Понятная настройка и использование

Что такое 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.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *