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);
    }
    

      

  • 相关阅读:
    oc获得设备类型
    oc代码规范
    图片下载进度
    Nsdate的各种常用操作
    学习视频
    ios 编码转换 保存文件
    免费代码托管网站
    两年JAVA程序员的面试总结
    Java 性能优化的 45 个细节
    7年Java游戏后端,被淘汰辛酸史
  • 原文地址:https://www.cnblogs.com/fatetop/p/14446457.html
Copyright © 2011-2022 走看看