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的openssl加密扩展使用小结(推荐)
- PHP中使用OpenSSL生成证书及加密解密
- php实现基于openssl的加密解密方法
- php基于openssl的rsa加密解密示例
相关推荐
-
php基于openssl的rsa加密解密示例
本文实例讲述了php基于openssl的rsa加密解密.分享给大家供大家参考,具体如下: <?php $config = array( //"config" =>"D:/phpserver/Lighttpd/openssl.cnf", //'config' =>'D:/phpStudy/Lighttpd/OpenSSL.cnf', 'private_key_bits' => 1024, // Size of Key. 'private_key
-
PHP的openssl加密扩展使用小结(推荐)
引言 互联网的发展史上,安全性一直是开发者们相当重视的一个主题,为了实现数据传输安全,我们需要保证:数据来源(非伪造请求).数据完整性(没有被人修改过).数据私密性(密文,无法直接读取)等.虽然现在已经有SSL/TLS协议实现的HTTPS协议,但是因在客户端上依赖浏览器的正确实现,而且效率又很低,所以一般的敏感数据(如交易支付信息等)还是需要我们使用加密方法来手动加密. 虽然对于一般的WEB开发人员来说,大可不必深入了解一些安全相关的底层技术,但学习加密基础知识,使用现有加密相关工具却十分必要.
-
php实现基于openssl的加密解密方法
本文实例讲述了php实现基于openssl的加密解密方法.分享给大家供大家参考,具体如下: 通过openssl加密解密方法 1. openssl加密方法: function encrypt($id){ $id=serialize($id); $key="1112121212121212121212"; $data['iv']=base64_encode(substr('fdakinel;injajdji',0,16)); $data['value']=openssl_encrypt($
-
PHP中使用OpenSSL生成证书及加密解密
依赖于OpenSSL扩展 /*加密解密*/ function authcode($string, $operation = 'E') { $ssl_public = file_get_contents(DATA_PATH."/conf/cert_public.key"); $ssl_private = file_get_contents(DATA_PATH."/conf/cert_private.pem"); $pi_key = openssl_pkey_get_p
-
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_g
-
PHP使用openssl扩展实现加解密方法示例
从PHP7版本开始很多依赖mcrypt扩展的方法都不支持了,PHP7.2.0及以上版本已经完全不支持mcrypt扩展的任何方法了,所以PHP7及以上版本都应该使用openssl扩展来实现加解密. 以DES-CBC加密方式为例: <?php class DesUtil { /** * Des 加密 * * @param $str * @param $secretKey * @param string $iv * @return string */ public static function en
-
php7安装openssl扩展方法
1.我的源码在 /home/topsec/Documents/php-7.0.11 ,安装位置在 /usr/local/php7, php.ini 在/ usr/local/php7/lib 下.如果没有php.ini需要把源码中的配置文件 php.ini-development 或php.ini-production改名成php.ini并放在lib下. 2.进入openssl的扩展目录 :/home/topsec/Documents/php-7.0.11/ext/openssl 3.运行php
-
php无需编译安装openssl扩展的实现方法
在php中使用RSA算法的时候,需要调用openssl_get_publickey方法,但同时需要对php编译openssl扩展,否则会提示以下错误: Call to undefined function openssl_get_publickey() 由于php已经安装完毕,如何无需编译的情况下安装openss呢.这种方式操作步骤如下: 进入php源代码路径 cd /php-5.6.19/ext/openssl 使用phpize编译 cp config0.m4 config.m4 phpize
-
linux环境下安装PHP的OpenSSL扩展的方法讲解
先安装依赖包:yum install openssl openssl-devel 进入PHP安装包里的OpenSSL文件夹,根据个人的安装包位置不同,此处是 cd /home/local/php.5.6.25/ext/openssl/ phpize 可能会报错:Cannot find config.m4. Make sure that you run /usr/local/bin/phpize in the top level source directory of the module, 在当
-
VMware下ubuntu扩展磁盘空间的方法
近日由于虚拟机下安装软件过多,时不时弹出磁盘空间不足的问题.查找了很多资料,都没有很好的解决办法. 朋友发来一个链接,还是老外有良心.翻译出来放在这里,根据我的实际需求进行了操作,达到了预期目的. 以防万一,在操作之前将虚拟机进行了备份. 由于安装时没有自己进行分区,磁盘大小也使用了默认的20G.后来发现果然悲剧. 使用df -h命令查看具体使用情况 @ubuntu:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 19G
-
Python实现扩展内置类型的方法分析
本文实例讲述了Python实现扩展内置类型的方法.分享给大家供大家参考,具体如下: 简介 除了实现新的类型的对象方式外,有时我们也可以通过扩展Python内置类型,从而支持其它类型的数据结构,比如为列表增加队列的插入和删除的方法.本文针对此问题,结合实现集合功能的实例,介绍了扩展Python内置类型的两种方法:通过嵌入内置类型来扩展类型和通过子类方式扩展类型. 通过嵌入内置类型扩展 下面例子通过将list对象作为嵌入类型,实现集合对象,并增加了一下运算符重载.这个类知识包装了Python的列表,
-
CI框架扩展系统核心类的方法分析
本文实例讲述了CI框架扩展系统核心类的方法.分享给大家供大家参考,具体如下: 首先你系统扩展类是放在application/core下面的,本来系统核心类是CI_Controller,所以你不能以CI_开头了,你需要打开 application/config/config.php 修改: $config['subclass_prefix'] = 'MY_'; 为你的前缀! 一些公共的模块就可以卸载自己的核心类里面了! 这几天读了Dilicms(轻量级的后台架构),比如说他的后台扩展类是这样的:
-
php结合mysql与mysqli扩展处理事务的方法
本文实例讲述了php结合mysql与mysqli扩展处理事务的方法.分享给大家供大家参考,具体如下: 以下只是展示如何应用,具体用的时候要加上判断,如果都执行成功则提交,否则回滚 看前先分清mysqli与mysql扩展是不一样的 mysqli扩展处理事物: $mysqli=new mysqli('localhost','root','123456','test'); $mysqli->autocommit(false);//开始事物 $query="update a set money=m
-
javascript输出AscII码扩展集中的字符方法
如下所示: function test(){ var c=""; for(var i=1;i<65536;i++){ if((i%10)==0){ c+=i+':\t'+String.fromCharCode(i)+'\t'+'\n';}else{ c+=i+':\t'+String.fromCharCode(i)+'\t';} } document.write(c); } 以上就是小编为大家带来的javascript输出AscII码扩展集中的字符方法全部内容了,希望大家多多支持
随机推荐
- Perl split字符串分割函数用法指南
- asp的ubb函数(推荐)
- Vue自定义事件(详解)
- UTF-8、Unicode 标准化表单、BOM
- 使用 Iisftp.vbs 暂停FTP站点的方法
- kafka生产实践(详解)
- JavaScript检测弹出窗口是否已经关闭的方法
- js资料toString 方法
- Android实现Activity水平和垂直滚动条的方法
- 深入mysql慢查询设置的详解
- iOS利用手机摄像头测心率
- 解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
- Jquery+ajax请求data显示在GridView上(asp.net)
- Collections工具类_动力节点Java学院整理
- javascript 跨浏览器的事件系统
- js控制一个按钮是否可点击(可使用)disabled的实例
- 关于js与php互相传值的介绍
- 详解Centos中完全删除mysql的方法
- C#特性-迭代器(上)及一些研究过程中的副产品
- 代理角色java设计模式之静态代理详细介绍