V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  imherer  ›  全部回复第 90 页 / 共 127 页
回复总数  2533
1 ... 86  87  88  89  90  91  92  93  94  95 ... 127  
2017-06-20 17:00:15 +08:00
回复了 imherer 创建的主题 Node.js RSA 解密问题
@popok 是啊,之前没解决就放那了,最近又要接,没法了。只能再来搞了。
它这里面牵涉到大量的 BigInt 以及位与运算,实在是难搞定
2017-06-20 15:06:25 +08:00
回复了 imherer 创建的主题 Node.js RSA 解密问题
@ChristopherWu 加您了
2017-06-20 14:56:44 +08:00
回复了 imherer 创建的主题 Node.js RSA 解密问题
@ChristopherWu 不好意思,这个格式太乱了,不知道怎么格式化
2017-06-20 14:56:20 +08:00
回复了 imherer 创建的主题 Node.js RSA 解密问题
@ChristopherWu
````
CoolpayDecryptDemo.php
<?php

require 'CoolpayDecrypt.php';

//以下三个数据为演示数据 trans_data 和 sign 为报文中获取的字段,key 为从商户自服务获取的应用密钥。
$trans_data = '{"exorderno":"10004200000001100042","transid":"02113013118562300203","waresid":1,"appid":"20004600000001200046","feetype":0,"money":3000,"count":1,"result":0,"transtype":0,"transtime":"2013-01-31 18:57:27","cpprivate":"123456"}';
$key = 'MjhERTEwQkFBRDJBRTRERDhDM0FBNkZBMzNFQ0RFMTFCQTBCQzE3QU1UUTRPRFV6TkRjeU16UTVNRFUyTnpnek9ETXJNVE15T1RRME9EZzROVGsyTVRreU1ETXdNRE0zTnpjd01EazNNekV5T1RJek1qUXlNemN4';
$sign = '28adee792782d2f723e17ee1ef877e7 166bc3119507f43b06977786376c0434 633cabdb9ee80044bc8108d2e9b3c86e';
// $sign ='2b6efac86ef6b58448a8d13a7341a904 fc56eaddca4ad6b2b95c3762dd0cb9b 2dc35815c9a1da8128112501b809c6c1';

$tools = new CoolpayDecrypt();
$result = $tools->validsign($trans_data,$sign,$key);
// $result = $tools->gensign($trans_data,$key);
// echo $result;
if($result == 0)
//验签名成功,添加处理业务逻辑的代码;
echo 'SUCCESS';
else
echo 'FAILED';
?>
````

CoolpayDecrypt.php

<?php

require 'RSAUtil.php';

class CoolpayDecrypt{
public function validsign($trans_data,$sign,$key){
$rsa = new RSAUtil();

//解析 key 需要从商户自服务提供的 key 中解析出我们的真正的 key. 商户自服务提供的 key = mybase64(private_key+mod_key);
$key1 = base64_decode($key);
//echo "$key1";
$key2 = substr($key1,40,strlen($key1)-40);
// echo "$key2";
$key3 = base64_decode($key2);
// echo "$key3";
//php 5.3 环境用下面这个
if(phpversion () > "5.3"){
list($private_key, $mod_key) = explode("+", $key3);
}else{
list($private_key, $mod_key) = split("\\+", $key3);
}
//使用解析出来的 key,解密包体中传过来的 sign 签名值
$sign_md5 = $rsa->decrypt($sign, $private_key, $mod_key);
$msg_md5 = md5($trans_data);


return strcmp($msg_md5,$sign_md5);
}
}
?>

RSAUtil.php 这个里面基本就只用到了这个函数
require 'Math.php';

public function decrypt($string, $d, $n){
//解决某些机器验签时好时坏的 bug
//BCMath 里面的函数 有的机器 php.ini 设置不起作用
//要在 RSAUtil 的方法 decrypt 加 bcscale(0);这样一行代码才行
//要不有的机器计算的时候会有小数点 就会失败
bcscale(0);

$bln = $this->keylen * 2 - 1;
$bitlen = ceil($bln / 8);
$arr = explode(' ', $string);
$data = '';
foreach($arr as $v){
$v = Math::hex2dec($v);
$v = bcpowmod($v, $d, $n);
$data .= Math::int2byte($v);
}
return trim($data);
}

然后还有一个 Math.php 文件 就是在 RSAUtil.php 里会用到,不过代码有点多
2017-06-20 14:46:53 +08:00
回复了 imherer 创建的主题 Node.js RSA 解密问题
@ChristopherWu 这个我看过了。不是的。
2017-06-20 14:42:33 +08:00
回复了 imherer 创建的主题 Node.js RSA 解密问题
@ytpfxnj 这是 demo 里的,没事的。
它这个很奇葩,key 第一次 base64_decode 之后,会把结果里前面 40 个长度的字符串去掉,即取 41 到结尾的字符串再 base64_decode 一次 结果就正常了,demo 里就是这样写的。
2017-06-20 14:39:54 +08:00
回复了 imherer 创建的主题 Node.js RSA 解密问题
@3pointer 谢谢你的恢复
没事的,这个数据是 demo 里的

我知道的 RSA-MD5 是用发送方用私钥加密,然后接收方拿到签名后,用公钥进行验签。

但是酷派给的这个 是解密,而且它给过来的 key 也不是 RSA 格式的。它的 php demo 里确实是解密了。
停留在商品界面,过了 0 点价格会自动变吗? 我怎么记得好像要刷新下才会变呢
2017-06-19 10:18:09 +08:00
回复了 Bairrfhoinn 创建的主题 支付宝 一觉醒来,蚂蚁花呗额度上涨了两千,现在的总额度六千
今天早上刚把支付顺序从花呗调为了信用卡。花呗真没啥用
2017-06-18 11:12:14 +08:00
回复了 AirSc 创建的主题 问与答 618 你们买了什么?
mavic pro 套装
2017-06-16 18:09:02 +08:00
回复了 jsrgqinbin 创建的主题 Apple U2717D 和 P2415Q 应该如何选?
目前用的 P2415Q,感觉还不错。P2715Q 没用过
2017-06-16 18:07:13 +08:00
回复了 leafonsword 创建的主题 Apple 感觉 macbook pro 适合打游戏呀!
@placeless 可以玩的,开高特效都没问题。 不过就是温度有点高😂
我还在观望中,准备 618 当天入手 mavic pro
2017-06-16 10:04:14 +08:00
回复了 imherer 创建的主题 Steam 你们的 steam 能上吗?
@redmofang 我是 Mac,那说明 Mac 上也是 qq 的某个进程搞的鬼了?
2017-06-15 16:55:11 +08:00
回复了 go2sleep 创建的主题 游戏 推荐一个手游 Polytopia
26M,居然这么小。
2017-06-15 16:14:35 +08:00
回复了 delai 创建的主题 问与答 被 Hootoo TypeC Hub 坑了, 2016 款 Macbook 其中一个插口已坏
吓的我赶紧拔了看了看我的
2017-06-14 19:27:01 +08:00
回复了 imherer 创建的主题 程序员 MySQL 公网访问问题
@nicevar 做了访问 IP 限制的,应该还好吧?
2017-06-14 18:30:59 +08:00
回复了 imherer 创建的主题 程序员 MySQL 公网访问问题
@raysonx 目前只有那台云服务器能访问数据,用 SSH 隧道后可以直接在我本地访问数据库吗?
1 ... 86  87  88  89  90  91  92  93  94  95 ... 127  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2026 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 60ms · UTC 16:18 · PVG 00:18 · LAX 09:18 · JFK 12:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.