암호화 간단하면서도 실용적인 작업은 암호화된 이메일을 보내는 것입니다. 수년 동안 이메일 암호화 표준은 PGP였습니다. 하지만 상용 소프트웨어이므로 자유롭게 사용할 수 없습니다. 이제 PGP의 대안으로 유사한 오픈 소스 제품을 사용할 수 있습니다. GPG에는 특허받은 알고리즘이 포함되어 있지 않으며 제한 없이 상업용 애플리케이션에 사용할 수 있습니다.
배경: 고객이 개인 키를 제공하고 암호화된 파일을 PHP를 통해 고객에게 전송하도록 요구합니다.
macOS Sierra 10.12.1
php 7.0.8
$ brew install gpg
$ yum install gnupg
gnupg 확장 설치, 참고해주세요 특정 방법의 경우 이전 기사: phpize를 사용하여 PHP 확장 설치
$ gpg --import /Users/xjnotxj/downloads/6e.pri
$ gpg --recipient 0D39xxxx --output test_file.xls.gpg --encrypt test_file.xls
0D39xxxx => 사진의 #1
$ gpg -o test_file_new.xls -d test_file.xls.gpg
$ gpg -o pubkey.txt -a --export e6e6xxxx
e6e6xxxx => 위 사진의 #2
// 设置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(); }
추천 학습: php 비디오 튜토리얼
위 내용은 PHP를 통해 gpg를 사용하여 파일을 암호화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!