【问题标题】:node-forge use certificationRequestFromPem to then get the SHA-256 Hash of CSR and MD5 Hashnode-forge 使用certificationRequestFromPem 获取CSR 的SHA-256 Hash 和MD5 Hash
【发布时间】:2021-09-05 15:35:29
【问题描述】:

我正在使用node-forge,需要解析一个CSR-PEM,可以通过以下方法完成:

Forge.pki.certificationRequestFromPem(csr)

但现在我需要获取 CSR 的 SHA-256 哈希和 MD5 哈希。我浏览了所有示例和文档,但找不到任何东西。 如果他们对锻造非常了解,任何人都可以提供帮助吗?或者也许另一个可以做到这一点的 nodejs 包?

我刚刚注意到我实际上需要来自 DER 编码的 CSR 的哈希,所以首先我需要将 PEM 转换为 DER :-(

【问题讨论】:

    标签: node.js pki node-forge


    【解决方案1】:

    您可以通过以下方式获取 CSR 哈希:

    const Forge = require('node-forge');
    
    const csrPem = `-----BEGIN CERTIFICATE REQUEST-----
    MIIDKjCCAhICAQAwgYQxFDASBgNVBAMMC2V4YW1wbGUuY29tMRQwEgYDVQQHDAtM
    b3MgQW5nZWxlczETMBEGA1UECAwKQ2FsaWZvcm5pYTEUMBIGA1UECgwLRXhhbXBs
    ZSBJbmMxCzAJBgNVBAsMAk5BMREwDwYJKoZIhvcNAQkBFgJOQTELMAkGA1UEBhMC
    VVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDwkcOjk1kyo7cJ6oJi
    Eh8ziUh+35NdgUXrJWhpb0sWddFYaq+VlwXp1fE9luQRc151zr4lLdGyV26LYGfT
    A85S40q9IcSXklB+gQG5O+wdRisI76HMnQ/SFoHKOjsuaH+vosZvWureifuiTqly
    kGsw6N+4i+O8RB/vQl9y6y1oLjeUOXxiBQkU97e9GBzXzvwSyXkrujArchRhkpd0
    K7US0lkNbfV3As1UQxxkGDWXRHNYKJgjmTOQ0clzwBTL54gcgSGtwxEoVHgzgOGi
    13+YTDvxDFKbZGEMnIAe0vHefiRIjXGujF2sbA+tJHw9lmNTleWI3XCwguosYWuY
    R8eFAgMBAAGgYDBeBgkqhkiG9w0BCQ4xUTBPMAkGA1UdEwQCMAAwCwYDVR0PBAQD
    AgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAWBgNVHREEDzANggtl
    eGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAvGmMT1+5rJ7F5cVDKs551BnH
    dXOCTrhJ9gQ/IlYsT9h5IowJzkkaYwRDDy3vuxYCg3GrexhFEHrwQq62X7U46Wrg
    U5NIKbFoOIEW18mhhhgeHOBqyNlMmCwZgDD99+O6NRtHAr/hMW5xDjHdcmtJKh0w
    aqYyiEpR8YUAqod4pDT20IGdlDksoGP5bqfeIjm3Xqqz5SFj2zZMMA0RdNOibxMU
    64cYx+iJ4+tfDg3mHfoR2YIvPz/WhrT0/9iKfh2nGH0xZWge5A28zMaGmEVSrt2a
    DSBRNlhZ9XQn3d1W3Om0DiTv9448RuCZsOJSj8iWaDvhCKzei+WaLznFiCKyNA==
    -----END CERTIFICATE REQUEST-----`
    
    
    const csrBytes = Forge.pki.pemToDer(csrPem).getBytes();
    
    const md5 = Forge.md.md5.create();
    const sha256 = Forge.md.sha256.create();
    
    md5.update(csrBytes, 'raw')
    sha256.update(csrBytes, 'raw')
    
    console.log(md5.digest().toHex().toUpperCase());
    console.log(sha256.digest().toHex().toUpperCase());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多