介绍
这篇文章将为大家详细讲解有关如何在PHP中使用openssl实现一个非对称加密,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。
1。安装openssl和PHP的openssl扩展
2。生成私钥:openssl genrsa用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护
openssl genrsa -out rsa_private_key.pem 1024
3。生成公钥:rsa命令用于处理rsa密钥,格式转换和打印信息
openssl rsa 拷贝;rsa_private_key.pem -pubout -out rsa_public_key.pem
4。这里我们使用私钥加密,公钥解密
& lt; php ?/* * *,密钥文件的路径 */时间=美元privateKeyFilePath & # 39; rsa_private_key.pem& # 39;;/* * *,公钥文件的路径 */时间=美元publicKeyFilePath & # 39; rsa_public_key.pem& # 39;; extension_loaded (& # 39; openssl # 39;),或是死(& # 39;php需要openssl扩展支持& # 39;); (file_exists (privateKeyFilePath美元),,,,file_exists (publicKeyFilePath美元)),或是死(& # 39;密钥或者公钥的文件路径不正确& # 39;);/* * *,生成资源类型的密钥,如果密钥文件内容被破坏,openssl_pkey_get_private函数返回错误的 */$ privateKey =, openssl_pkey_get_private (file_get_contents (privateKeyFilePath美元));/* * *,生成资源类型的公钥,如果公钥文件内容被破坏,openssl_pkey_get_public函数返回错误的 */$ publicKey =, openssl_pkey_get_public (file_get_contents (publicKeyFilePath美元)); ($ privateKey ,,, publicKey美元),或是死(& # 39;密钥或者公钥不可用& # 39;);/* * *,原数据 */时间=美元originalData & # 39;加密前哈哈哈# 39;;/* * *,加密以后的数据,用于在网路上传输 */encryptData 美元;=,& # 39;& # 39;; echo & # 39;原数据为:& # 39;,originalData美元,PHP_EOL;///////////////////////////////用私钥加密////////////////////////if (openssl_private_encrypt (originalData美元,encryptData美元,美元privateKey)), { ,/* * ,,*,加密后,可以base64_encode后方便在网址中传输,或者打印,否则打印为乱码 ,,*/echo 才能;& # 39;加密成功,加密后数据(base64_encode后)为:& # 39;,base64_encode (encryptData美元),,PHP_EOL; },{else 死才能(& # 39;加密失败& # 39;); }///////////////////////////////用公钥解密/////////////////////////* * *,解密以后的数据 */decryptData 美元;=& # 39;& # 39;; if (openssl_public_decrypt (encryptData美元,decryptData美元,美元publicKey)), { echo & # 39;才能解密成功,解密后数据为:& # 39;,decryptData美元,PHP_EOL; },{else 死才能(& # 39;解密成功& # 39;); }
关于如何在PHP中使用openssl实现一个非对称加密就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。