文档章节

php openssl 加密和解密 注意事项

大灰狼wow
 大灰狼wow
发布于 05/07 11:06
字数 170
阅读 4
收藏 0
class SimpleERP {

    private $_config;
    private $_domain;
    private $_private_pem="./private.pem";

    public function __construct() {   
        if(version_compare(PHP_VERSION,'5.5.9','<'))  die('require PHP > 5.5.9 !');
        $this->_config = require 'config.php';
    }

    public function login() {
        $user["tokenEnc"] = $this->_config['AUTH_TOKEN_ENC'];
        $user['sign'] =$this->getSign($this->_config['AUTH_TOKEN_ENC']);
        $urlData= http_build_query($user);
        
        $url = $this->_config['WEB_URL'] . "system/user/loginByToken.do";
        $header=array(
            'user-agent:SIMPLE-HTTPCLIENT-RELEASED-RSA2',
            'Content-Type:application/x-www-form-urlencoded;charset=utf-8'
        );
        $res = HttpService::postRequest($url, $urlData,$header);
        var_dump($res);
    }
    
    private function getSign($data=""){
        $private_key= file_get_contents($this->_private_pem);
        $res= openssl_get_privatekey($private_key);
        openssl_sign($data, $sign,$res,OPENSSL_ALGO_SHA256);
        return  base64_encode($sign);
    }

}

 

1、php版本最好5.6  我用5.4版本同样的秘钥失败

2、加密的格式

3、加密好的签名进行base64转码获得字符串

4、url拼接http_build_query

5、header头部发送的设置 

© 著作权归作者所有

大灰狼wow
粉丝 48
博文 396
码字总数 49161
作品 1
嘉兴
程序员
私信 提问
看完秒懂对称加密、非对称加密、数字签名

对称加密算法 对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大...

yushiwh
2018/07/11
0
0
[安全] 关于 RSA 算法的原理与实践

当代信息网络发展至今,覆盖面已经非常广泛,广大用户使用这个互联网络来分享信息,搜索资料,进行商业交易等等,可以说是无处不在,也因为这样,这个领域中的信息安全也就变得越来越重要。在...

长平狐
2012/11/19
890
0
php使用openssl来实现非对称加密

使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。 安装openssl和php的openssl扩展 生成私钥:openssl genrsa 用于生成rsa私钥文件,生成是可以指定...

edgeto
2017/10/22
84
0
PHP 迁移 Mcrypt 至 OpenSSL 加密算法详解

对称加解密算法中,当前最为安全的是 AES 加密算法(以前应该是是 DES 加密算法),PHP 提供了两个可以用于 AES 加密算法的函数簇:Mcrypt 和 OpenSSL。 其中 Mcrypt 在 PHP 7.1.0 中被 Depr...

big_cat
03/03
157
0
【Java小工匠聊密码学】--非对称加密--概述

1、什么是非对称加密   非对称加密算法需要两个密钥:[公开密钥] (publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥...

追梦着
2018/06/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
46分钟前
4
0
数组和链表

数组 链表 技巧一:掌握链表,想轻松写出正确的链表代码,需要理解指针获引用的含义: 对指针的理解,记住下面的这句话就可以了: 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指...

code-ortaerc
今天
4
0
栈-链式(c/c++实现)

上次说“栈是在线性表演变而来的,线性表很自由,想往哪里插数据就往哪里插数据,想删哪数据就删哪数据...。但给线性表一些限制呢,就没那么自由了,把线性表的三边封起来就变成了栈,栈只能...

白客C
今天
40
0
Mybatis Plus service

/** * @author beth * @data 2019-10-20 23:34 */@RunWith(SpringRunner.class)@SpringBootTestpublic class ServiceTest { @Autowired private IUserInfoService iUserInfoS......

一个yuanbeth
今天
5
0
php7-internal 7 zval的操作

## 7.7 zval的操作 扩展中经常会用到各种类型的zval,PHP提供了很多宏用于不同类型zval的操作,尽管我们也可以自己操作zval,但这并不是一个好习惯,因为zval有很多其它用途的标识,如果自己...

冻结not
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部