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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM