PHP 使用openssl 扩展实现公钥加密的方法

 更新时间:2018年03月21日 08:43:51   作者:落叶成冰  
下面小编就为大家分享一篇PHP 使用openssl 扩展实现公钥加密的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

如下所示:

// 生成私钥
# openssl genrsa -out rsa_private_key.pem 1024
// 生成公钥
# openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

下面是示例代码:

<?php
// openssl 扩展检测
var_dump(extension_loaded('openssl'));
$prikey = openssl_pkey_get_private(file_get_contents('rsa_private_key.pem')); //私钥
$pubkey = openssl_pkey_get_public(file_get_contents('rsa_public_key.pem')); //公钥
// 明文数据
$data = 'test-string!';
/**
 * 可能会出的问题:Don't know how to get public key from this private key
 * 原因:PHP 的 openssl 扩展和 Apache 的不一致导致, 当然在命令行下运行程序则不会出现此问题
 */
// 公钥加密
$encrypt_data = '';
openssl_public_encrypt($data, $encrypt_data, $pubkey);
$encrypt_data = base64_encode($encrypt_data);
echo $encrypt_data;
echo '<br/>';
// ------------------------------------------------------------
// 私钥解密
$encrypt_data = base64_decode($encrypt_data);
openssl_private_decrypt($encrypt_data, $decrypt_data, $prikey);
var_dump($decrypt_data);

以上这篇PHP 使用openssl 扩展实现公钥加密的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • PHP中source #N问题的解决方法

    PHP中source #N问题的解决方法

    最近写PHP里面的查询经常会遇到source #4或者source#5这样的问题,下面有个不错的解决方法,大家可以尝试下
    2014-01-01
  • php 定界符格式引起的错误

    php 定界符格式引起的错误

    下面是一个错误的代码,能看出哪里出错了么??对于我这个初学者什么都是蒙蒙懂的,真的无从下手,但是真的要自己尝试了才知道哪里错了,书和教程都不会告诉我哪里错了
    2011-05-05
  • PHP版本如何选择?应该使用哪个版本?

    PHP版本如何选择?应该使用哪个版本?

    这篇文章主要介绍了PHP版本如何选择?应该使用哪个版本?,本文比较总结了应该使用PHP的哪个版本,需要的朋友可以参考下
    2015-05-05
  • php不用GD库生成当前时间的PNG格式图象的程序

    php不用GD库生成当前时间的PNG格式图象的程序

    该程序是不用GD库可以生成当前时间的PNG格式图象,给人大开眼界,很有参考价值. teaman整理
    2008-09-09
  • php设计模式 Adapter(适配器模式)

    php设计模式 Adapter(适配器模式)

    将一个类的接口转换成客户希望的另外一个接口,使用原本不兼容的而不能在一起工作的那些类可以在一起工作
    2011-06-06
  • PHP实现的分页类定义与用法示例

    PHP实现的分页类定义与用法示例

    这篇文章主要介绍了PHP实现的分页类定义与用法,结合具体实例形式分析了php封装的分页类常用操作及具体使用技巧,需要的朋友可以参考下
    2017-07-07
  • 一些 PHP 管理系统程序中的后门

    一些 PHP 管理系统程序中的后门

    一些php网站管理程序的,一些后门,其实官方也没有恶意,主要是大家为了自己的安全。
    2009-08-08
  • 简单实现php上传文件功能

    简单实现php上传文件功能

    这篇文章主要教大家如何简单实现php上传文件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • ThinkPHP中处理表单中的注意事项

    ThinkPHP中处理表单中的注意事项

    这篇文章主要介绍了ThinkPHP中处理表单中的注意事项,分析并总结了ThinkPHP表单处理中需要注意的问题,包括URL访问、错误处理、查询、添加、删除的技巧等问题,需要的朋友可以参考下
    2014-11-11
  • DOM基础及php读取xml内容操作的方法

    DOM基础及php读取xml内容操作的方法

    这篇文章主要介绍了DOM基础及php读取xml内容操作的方法,实例分析了php对XML文件的增删改查操作原理与技巧,需要的朋友可以参考下
    2015-01-01

最新评论