PHP基于openssl实现非对称加密代码实例_php技巧

来源:脚本之家  责任编辑:小易  

Failed to create directoryCCLOG("AssetsManagerEx:can not create directory%s\\n",fullPath.c_str());unzClose(zipfile);return false;}}www.zgxue.com防采集请勿采集本网。

使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。

PHP Warning: openssl_sign 10 求大神指教!PHPWarning:openssl_sign()[function.openssl-sign]:suppliedkeyparamcannotbecoercedintoaprivatekeyinD:\web\pay\req.phponline13

1.安装openssl和php的openssl扩展

打开php.ini,搜索到extension=php_openssl.dll这行,将这行代码的前面的分号";"删除,再重启一下Apache即可。

2.生成私钥:openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护

如何在Apache下php开启openssl模块将apache的配合之文件中的httpd.conf中的 #LoadModule ssl_module modules/mod_ssl.so 前面的#去掉就好了。如果还没有打开的话

openssl genrsa -out rsa_private_key.pem 1024

/data/src/php-5.6.23/ext/openssl/openssl.c:Infunction‘add_assoc_name_entry’:/data/src/php-5.6.23/ext/openssl/openssl.c:664:warning:‘ASN1_STRING_data’isdeprecated

3.生成公钥:rsa命令用于处理RSA密钥、格式转换和打印信息

检查php.ini开启openssl扩展没有。可以直接百度php开启openssl,会有很多解答 本回答由网友推荐 已赞过 已踩过 你对这个回答的评价是? 评论 收起 热心网友 2017-11-19 展

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

4.这里我们使用私钥加密,公钥解密

<?php/** * 密钥文件的路径 */$privateKeyFilePath = 'rsa_private_key.pem';/** * 公钥文件的路径 */$publicKeyFilePath = 'rsa_public_key.pem';extension_loaded('openssl') or die('php需要openssl扩展支持');(file_exists($privateKeyFilePath) && file_exists($publicKeyFilePath)) or die('密钥或者公钥的文件路径不正确');/** * 生成Resource类型的密钥,如果密钥文件内容被破坏,openssl_pkey_get_private函数返回false */$privateKey = openssl_pkey_get_private(file_get_contents($privateKeyFilePath));/** * 生成Resource类型的公钥,如果公钥文件内容被破坏,openssl_pkey_get_public函数返回false */$publicKey = openssl_pkey_get_public(file_get_contents($publicKeyFilePath));($privateKey && $publicKey) or die('密钥或者公钥不可用');/** * 原数据 */$originalData = '加密前hahahaha';/** * 加密以后的数据,用于在网路上传输 */$encryptData = '';echo '原数据为:', $originalData, PHP_EOL;///////////////////////////////用私钥加密////////////////////////if (openssl_private_encrypt($originalData, $encryptData, $privateKey)) { /** * 加密后 可以base64_encode后方便在网址中传输 或者打印 否则打印为乱码 */ echo '加密成功,加密后数据(base64_encode后)为:', base64_encode($encryptData), PHP_EOL;} else { die('加密失败');}///////////////////////////////用公钥解密/////////////////////////** * 解密以后的数据 */$decryptData = '';if (openssl_public_decrypt($encryptData, $decryptData, $publicKey)) { echo '解密成功,解密后数据为:', $decryptData, PHP_EOL;} else { die('解密成功');}

1)确认PHP的版本,版本号要带-nts(我选的是php-5.4.45-nts)2)找到php.ini文件 配置extension=php_openssl.dll将前面的;去掉,没有的话将这条加入,不带分号3)到这边已经配置好了,重启PHP环境内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • js通过aes加密后php用openssl解密的方法
  • php基于openssl实现的非对称加密操作示例
  • php 使用openssl 扩展实现公钥加密的方法
  • php中使用openssl生成证书及加密解密
  • php实现基于openssl的加密解密方法
  • php的openssl加密扩展使用小结(推荐)
  • php基于openssl的rsa加密解密示例
  • php pki加密技术(openssl)详解
  • php采用curl访问域名返回405 method not allowed提示的解决方法
  • php严重致命错误处理:php fatal error: cannot redeclare class
  • 如何使用php绘制在图片上的正余弦曲线
  • php的json中文处理解决方案
  • php互换两个变量值的方法(不用第三变量)
  • php简单实现上一页下一页功能示例
  • apache下禁止php文件被直接访问的解决方案
  • php使用phpunit进行单元测试示例
  • php开发中常用的三个表单验证函数使用小结
  • php检测字符串是否为utf8编码的常用方法
  • php怎么开启openssl模块 百度知道
  • php5.5.38开启openssl扩展
  • php怎么开启openssl模块 百度知道
  • 如何在Apache下php开启openssl模块 百度知道
  • PHP Warning: openssl sign 百度知道
  • 如何在Apache下php开启openssl模块 百度知道
  • 如何在Apache下php开启openssl模块 百度知道
  • 麻烦各位大虾帮忙看看php安装openssl扩展问题 百度知道
  • php openssl 函数不能用? 百度知道
  • ...php5.6.30安装openssl扩展报错,麻烦各位大神看看哪儿的问题 百度...
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程js通过aes加密后php用openssl解密的方法php基于openssl实现的非对称加密操作示例php 使用openssl 扩展实现公钥加密的方法php中使用openssl生成证书及加密解密php实现基于openssl的加密解密方法php的openssl加密扩展使用小结(推荐)php基于openssl的rsa加密解密示例php pki加密技术(openssl)详解php采用curl访问域名返回405 method not allowed提示的解决方法php严重致命错误处理:php fatal error: cannot redeclare class 如何使用php绘制在图片上的正余弦曲线php的json中文处理解决方案php互换两个变量值的方法(不用第三变量)php简单实现上一页下一页功能示例apache下禁止php文件被直接访问的解决方案php使用phpunit进行单元测试示例php开发中常用的三个表单验证函数使用小结php检测字符串是否为utf8编码的常用方法php中json_decode()和json_encodphp 数组和字符串互相转换实现方php中使用curl实现get和post请求php中iconv函数使用方法php日期转时间戳,指定日期转换成php 页面跳转到另一个页面的多种php中文处理 中文字符串截取(mb_php下intval()和(int)转换使用与利用phpexcel实现excel数据的导入phpmyadmin 配置文件详解(配置)php mysql乱码问题,使用set names utf8校php实现时间比较和时间差计算的方法示例几行代码轻松实现php文件打包下载zipphp文件压缩之phpzip类用法实例golang与php输出excel示例php获取服务器端mac和客户端mac的地址支持php+ajax无刷新上传图片的实现方法php字符串长度计算 - strlen()函数使用介php文件上传类实例详解php+mysql数据库实现无限分类的方法
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved