//加密

function _checkPadding($padding, $type) {

if ($type == 'en') {

switch ($padding) {

case OPENSSL_PKCS1_PADDING :

$ret = true;

break;

default :

$ret = false;

}

} else {

switch ($padding) {

case OPENSSL_PKCS1_PADDING :

case OPENSSL_NO_PADDING :

$ret = true;

break;

default :

$ret = false;

}

}

return $ret;

}

function encrypt($gcPubKey,$data, $code = 'base64', $padding = OPENSSL_PKCS1_PADDING) {

if (! _checkPadding($padding, 'en'))

echo  'padding error' ;

$len = "117";

$strArray = str_split ( $data, $len );

$ret = false;

foreach ( $strArray as $cip ) {

if (openssl_public_encrypt ( $cip, $result, $gcPubKey, $padding )) {

$ret .= $result;

}

}

$s = $ret;

$hex = _encode ( $s, "hex" );

$ret = _encode ( $ret, "base64" );

return $ret;

}

function _encode($data, $code) {

switch (strtolower ( $code )) {

case 'base64' :

$data = base64_encode ( $data );

break;

case 'hex' :

$data = bin2hex ( $data );

break;

case 'bin' :

default :

}

return $data;

}

//将XML转为array

function xmlToArray($xml)

{

//禁止引用外部xml实体

libxml_disable_entity_loader(true);

$values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);

return $values;

}

//解密

function decrypt($data, $code = 'base64', $padding = OPENSSL_PKCS1_PADDING, $rev = false,$priKey) {

$ret = false;

$data = _decode ( $data, $code );

if (! _checkPadding ( $padding, 'de' ))

echo  'padding error' ;

if ($data != false) {

$len = "128";

$strArray = str_split ( $data, $len );

$result = '';

foreach ( $strArray as $cip ) {

if (openssl_private_decrypt ( $cip, $result, $priKey, $padding )) {

$ret .= $result;

}

}

}

return $ret;

}

function _decode($data, $code) {

switch (strtolower ( $code )) {

case 'base64' :

$data = base64_decode ( $data );

break;

case 'hex' :

$data = _hex2bin ( $data );

break;

case 'bin' :

default :

}

return $data;

}

function _hex2bin($hex = false) {

$ret = $hex !== false && preg_match ( '/^[0-9a-fA-F]+$/i', $hex ) ? pack ( "H*", $hex ) : false;

return $ret;

}

//将XML转为array

private function xmlToArray($xml)

{

//禁止引用外部xml实体

libxml_disable_entity_loader(true);

$values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);

return $values;

}

php 支付加密,关于支付时rsa加密解密的函数相关推荐

  1. C语言RSA实现对字符串加密,C语言实现RSA加解密算法

    http://www.open-open.com/code/view/1435718537888 2015.071. RSA说明 RSA公钥加密算法是1977年由Ron Rivest.Adi Sham ...

  2. android rsa加密工具类,android RSA加密

    释放双眼,带上耳机,听听看~! 这个RSA加密其实自己也没有完全弄清楚,只是在网上自己找了一些资料,也是为了记录自己的代码. 概述 RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事 ...

  3. 表单提交对数据进行加密详解(RSA加密)

    一.使用背景 以前在做项目的时候就觉得表单直接明文提交非常不安全.有心之人只要稍加操作就能轻易获取用户的信息,这是非常可怕的事情,但又苦于不知道该如何加密,如何提高安全性. 后来慢慢接触到RSA,才知 ...

  4. python实现rsa加密源代码_python实现RSA加密(解密)算法

    RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准. 今天只有短的RSA钥匙才可能被强力方式解破.到2008年为止,世界上还没有任何可靠 ...

  5. php rsa加密实例,php实现RSA加密类实例,phprsa加密实例_PHP教程

    php实现RSA加密类实例,phprsa加密实例 本文实例讲述了php实现RSA加密类.分享给大家供大家参考.具体分析如下: 通过openssl实现的签名.验签.非对称加解密,需要配合x.509证书( ...

  6. python实现拍拍贷 rsa 加密 及 python普通rsa加密方式

    普通加密方式之一: # coding=utf-8import rsa import binascii, base64# 使用网页中获得的n和e值,将明文加密 def rsa_encrypt(rsa_n ...

  7. 大三时候实现的,关于大整数(超过long范围)加减乘除操作的头文件,并包含了实现RSA加解密的函数...

    1 #include<iostream> 2 #include<time.h> 3 #include<string.h> 4 using namespace std ...

  8. Vue中前端加密使用RSA加密下的JSEncrypt防止明文暴露

    场景 前端使用Vue在进行登录时,需要将密码存进cookie中. 为了防止密码明文暴露,前端需要采用加密方式对密码进行加密. 常用加密方式之一就是RSA加密解密. RSA加密是一种非对称加密.可以在不 ...

  9. python - RSA加密

    什么是RSA?这里粘贴一些定义. RSA公开密钥密码体制.所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种"由已知加密密钥推导出解密密钥在计算上是不可行的"密码体制. ...

最新文章

  1. linux网络虚拟化
  2. sql移动加权计算利润_一文搞懂股票指数的4种加权方式
  3. opencl filtering整理
  4. echarts雷达图线的样式_echarts 雷达图的个性化设置
  5. android 驻留广播,Android实现Service永久驻留
  6. 18 | 案例篇:内存泄漏了,我该如何定位和处理?
  7. php设计模式之单例模式 1
  8. 超融合平台安装oracle,超融合平台集成实施方案
  9. PHP - 验证用户名
  10. mysql8.0.15源码linux_源码安装mysql8.0.20
  11. 了解开源图表组件FusionChartsFree
  12. mac电脑用计算机名共享打印机,苹果电脑怎么连接共享打印机_苹果电脑连接共享打印机的具体教程-系统城...
  13. 三等分任意角可能吗?
  14. shiro 实现退出登录功能
  15. 非root用户用bluefish保存文件时报permission denied错误解决办法(之一)
  16. 笔记本上怎么怎么暂停cmd打印窗口
  17. 计算机房颁奖词,网络达人奖颁奖词.doc
  18. 分销小程序功能有哪些?如何使用分销小程序实现裂变卖货?
  19. for循环的三种写法
  20. 三、全国计算机三级数据库考试——操作题(1—5套)

热门文章

  1. php获取特殊标签,thinkphp特殊标签使用
  2. rust风化速度_反驳《Golang、Rust的执行速度的对照,让人大吃一惊。》——不会别瞎说...
  3. linux网卡名称乱编,小斗CentOS7.x网卡名称错乱、及网卡启动失败。
  4. 12306订票助手java_12306订票助手
  5. 开源cms - 资料收集
  6. Shell 脚本知识回顾 (四) —— Shell 命令及Shell 相关语句
  7. [Mac] php安装protobuf扩展
  8. IIS出现The specified module could not be found解决方法
  9. “约见“面试官系列之各系列目录汇总(建议学习收藏)
  10. React开发(273):异步调用的方式