Heim > Backend-Entwicklung > PHP-Problem > So verschlüsseln Sie Dateien mit GPG über PHP

So verschlüsseln Sie Dateien mit GPG über PHP

醉折花枝作酒筹
Freigeben: 2023-03-11 09:44:02
nach vorne
2710 Leute haben es durchsucht

Verschlüsselung Eine einfache, aber praktische Aufgabe ist das Versenden verschlüsselter E-Mails. Der Standard zur Verschlüsselung von E-Mails ist seit Jahren PGP. Es handelt sich jedoch um kommerzielle Software und kann nicht frei verwendet werden. Als Alternative zu PGP ist jetzt ein ähnliches Open-Source-Produkt verfügbar. GPG enthält keine patentierten Algorithmen und kann ohne Einschränkungen für kommerzielle Anwendungen genutzt werden.

So verschlüsseln Sie Dateien mit GPG über PHP

Hintergrund: Der Kunde stellt den privaten Schlüssel zur Verfügung und fordert uns auf, die verschlüsselte Datei per PHP an ihn zu übertragen.

Umgebung

  • macOS Sierra 10.12.1

  • php 7.0.8

GPG-Umgebung installieren

macOS:
$ brew install gpg
Nach dem Login kopieren
CentOS
$ yum install gnupg
Nach dem Login kopieren
php

Installieren Sie die Gnupg-Erweiterung, bitte wenden Sie sich an mich für bestimmte Methoden Alter Artikel: Verwenden Sie phpize, um die PHP-Erweiterung zu installieren

Importieren Sie den privaten Schlüssel, und der öffentliche Schlüssel wird entsprechend importiert

$ gpg --import /Users/xjnotxj/downloads/6e.pri
Nach dem Login kopieren

So verschlüsseln Sie Dateien mit GPG über PHP

Testen Sie die Richtigkeit des Schlüssels [kann übersprungen werden]

Verschlüsselte Dateien
$ gpg --recipient 0D39xxxx --output test_file.xls.gpg --encrypt test_file.xls
Nach dem Login kopieren

0D39xxxx => #1 des Bildes

Entschlüsseln Sie die Datei
$ gpg -o test_file_new.xls  -d test_file.xls.gpg
Nach dem Login kopieren

Exportieren Sie den öffentlichen Schlüssel

$ gpg -o pubkey.txt -a --export e6e6xxxx
Nach dem Login kopieren

e6e6xxxx => #2 des Bildes oben

Verschlüsseln Sie die Datei mit PHP Datei

// 设置gnupg在你本机的路径
putenv('GNUPGHOME=/root/.gnupg');
try {
    //获取公钥
    $publicKey = file_get_contents('application/report/pubkey.txt');
    //初始化gpg
    $gpg = new gnupg();
    //开启调试
    $gpg->seterrormode(gnupg::ERROR_EXCEPTION);
    //导入公钥
    $info = $gpg->import($publicKey);
    //获取公钥指纹
    $gpg->addencryptkey($info['fingerprint']);
    //获取需要加密的文件
    $uploadFileContent = file_get_contents($filename);
    //加密文件
    $enc = $gpg->encrypt($uploadFileContent);

    //保存文件到本地
    $filename = 'application/report/'.'file_xls' . '.gpg';
    file_put_contents($filename, $enc);

} catch (Exception $e) {
    //log something
    return $e->getMessage();
}
Nach dem Login kopieren

Empfohlenes Lernen: php-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo verschlüsseln Sie Dateien mit GPG über PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage