NodejsはRSA署名(SHA 256 withRSA)を行います.


最近はオープンプラットフォームプロジェクトをしていますが、SDKを作成する時に署名検証機能を使い、Sha 256 WithRSAを使って署名します.具体的な流れは秘密鍵を使って署名を生成し、公開鍵を使って署名を行います.
秘密鍵の署名コードを共有します.
package.json追加依頼:
"dependencies": {
    //    
    "jsrsasign": "^8.0.19",
  }
完全コード:
const {KJUR, hextob64} = require('jsrsasign')

const HashMap = {
    SHA256withRSA: 'SHA256withRSA',
    SHA1withRSA: 'SHA1withRSA'
}

const PEM_BEGIN = '-----BEGIN PRIVATE KEY-----
'
const PEM_END = '
-----END PRIVATE KEY-----'
/** * rsa :https://www.jianshu.com/p/145eab95322c */ exports.SignUtil = { /** * rsa * @param content * @param privateKey ,PKCS#1 * @param hash hash ,SHA256withRSA,SHA1withRSA * @returns ,base64 */ rsaSign: function (content, privateKey, hash) { privateKey = this._formatKey(privateKey) // Signature const signature = new KJUR.crypto.Signature({ alg: hash, //! pem! prvkeypem: privateKey }) signature.updateString(content) const signData = signature.sign() // base64 return hextob64(signData) }, _formatKey: function (key) { if (!key.startsWith(PEM_BEGIN)) { key = PEM_BEGIN + key } if (!key.endsWith(PEM_END)) { key = key + PEM_END } return key } }