zoukankan      html  css  js  c++  java
  • js使用crypto实现md5WithRSA加密及验签

    最近使用node对接一家支付三方,对方使用的是java

    要求使用RSA加密 使用的算法是 md5WithRSA  encoding是utf8 输出是base64

    在使用crypto-js和node-rsa无果后 查阅了node官方文档的crypto找到了答案

     createSign方法传入加密算法创建一个sign对象,当然算法不是全部都支持的 

     使用getHashes()方法可以查到能使用的算法 正好 我们需要的md5WithRSA  在其中 (在这是md5WithRSAEncryption)

    加密

    try {
        let priKeyName = 'pri.pem';
        let priKey = fs.readFileSync(path.resolve(__dirname, path.join(SELF_ROOT_PATH, 'keys/'  + priKeyName))).toString();
        let sign = crypto.createSign('md5WithRSAEncryption');
        sign.update(signString, 'utf8');
        sign.end();
        let signature = sign.sign(priKey, 'base64');
    } catch (err) {
        console.log('RSA加密 -------------------------');
        console.log(err);
    }
    

    验签

    try {
        let pubKeyName = 'pri.pem';
        let pubKey = fs.readFileSync(path.resolve(__dirname, path.join(think.ROOT_PATH, 'keys/' + pubKeyName))).toString();
        let verify = crypto.createVerify('md5WithRSAEncryption');
        verify.update(signString, 'utf8');
        verify.end();
        let res = verify.verify(pubKey, signature, 'base64');
        console.log(res)
    } catch (err) {
        console.log('RSA加密 -------------------------');
        console.log(err);
    }
    

      

  • 相关阅读:
    如何使用PL/SQL工具批量导出表、存储过程、序列
    oracle如何导出和导入数据库/表
    linux安装nginx
    Linux下nginx反向代理服务器安装与配置实操
    StringTokenizer
    mapreduce join
    mapreduce计数器
    hadoop分布式系统架构详解
    进程与线程
    hadoop第一个例子
  • 原文地址:https://www.cnblogs.com/fatetop/p/14446457.html
Copyright © 2011-2022 走看看