V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  imherer  ›  全部回复第 91 页 / 共 129 页
回复总数  2566
1 ... 87  88  89  90  91  92  93  94  95  96 ... 129  
以前写 ASP.NET,后来转了 Node.js
2017-06-22 14:56:15 +08:00
回复了 nanau2016 创建的主题 Apple 求推荐散热器 16 年款 mbp
16 款 15 寸带 bar MBP 外接一个 4K,啥都不开,平均 50 度左右
2017-06-22 14:46:12 +08:00
回复了 xiubin 创建的主题 Apple iOS 11 develop beta 2 出来了,很流畅!
@kingcos 哈哈,我也是,掌上生活打不开, 我还去招行管微留言了的,让他们抓紧,他们还回复了🤣
2017-06-22 14:13:47 +08:00
回复了 xiubin 创建的主题 Apple iOS 11 develop beta 2 出来了,很流畅!
早上醒来就看到红点,于是就更新了。
唯一的感触是 有几个常用的 app 终于能用了,之前是打开就闪退。
2017-06-22 13:41:03 +08:00
回复了 wandero 创建的主题 问与答 请教一个 git 的操作问题
写个脚本,或者 alias
2017-06-22 10:14:34 +08:00
回复了 millken 创建的主题 问与答 AWS ELB 分配的 IP 会变动吗?
@SharkIng 对的,ELB 不能挂载 Elastic IP
2017-06-22 09:59:42 +08:00
回复了 wangzimeng 创建的主题 汽车 考驾照一定要给驾校教练送礼吗?大家怎么看?欢迎吐槽!
在北京学的,海淀驾校,很正规。 我当时和我一个同事一起去学的,我那同事抽烟,又一次练车累了,停旁边休息,然后同事递给教练一根烟,教练说:"不敢接",完了拿出了自己的烟抽的(并不是嫌弃同事的烟不好抽)
数码广场就是这样的,以前在北京中关村那边也是,先和你各种谈,完了让你交一部分钱,然后就开始坑你了。
2017-06-22 09:50:30 +08:00
回复了 imherer 创建的主题 macOS MAC 版 QQ 的漫游聊天记录什么时候能用啊
@boywang004 哪里反馈啊,我之前只找到了他们的官方微博,去留言了,没人回复。。。
2017-06-21 15:12:11 +08:00
回复了 Revenant 创建的主题 全球工单系统 太坑了, 618 朋友在京东给老爸买的 iPad 是已激活的
京东上还是买 自营的吧,如果第三方的话估计和 x 宝差不多了。不过自营的话 一般会贵一点点
2017-06-20 17:54:58 +08:00
回复了 imherer 创建的主题 Node.js RSA 解密问题
@jiangzhuo 非常感谢,稍等 我先看看,如果没问题一定红包感谢你!😀
2017-06-20 17:23:03 +08:00
回复了 imherer 创建的主题 Node.js RSA 解密问题
@darkbread 好的,谢谢!
2017-06-20 17:01:10 +08:00
回复了 imherer 创建的主题 Node.js RSA 解密问题
@darkbread 都是一些 BigInt 以及位与运算什么的
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 里确实是解密了。
1 ... 87  88  89  90  91  92  93  94  95  96 ... 129  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5132 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 63ms · UTC 07:39 · PVG 15:39 · LAX 00:39 · JFK 03:39
Developed with CodeLauncher
♥ Do have faith in what you're doing.