代码之家  ›  专栏  ›  技术社区  ›  void main

如何解析PKCS1?

  •  0
  • void main  · 技术社区  · 6 年前

    假设我有一个RSA-1024密钥对,如下所示:

    -----BEGIN RSA PRIVATE KEY-----
    MIICXgIBAAKBgQDlQmZUbHRpl9e9d1LmfUdXiV7UV1FZr2cHtTT4RwHWi1oMCJnZ
    YEQQDDr76Qpow83CBqyEi8Ia4Fkvpb6XVekhNcCEAB/ac7UTHYJiB5aSE/zixiA1
    pHpumlYt9RmItgPxNIv9DRRCTh0sr8Yqxv/85B1Z7bgaE5k5EGQPEi6i1QIDAQAB
    AoGBAMzhciGwariTAjJIGMXy33bTRPPutLy5jBHPVu8qRfI9xtNKPHOPHERbKbtG
    oA7QLWlgHXy2iVkLdainLpSAKj3Z6wNXv8plzfk7SIvC4OSgsEpWYUPBKCDBNRvd
    HLGDmhUiXVgE1g9zAvG27ny+PPKilCcgo3Y//mUVJculig9hAkEA/+40B10YnTlt
    Mj2XNi0u3pbWLnBT5DPm0+i2g8goKuhWXTpNGv9HKhtT1fouUsPvvb/HjS+hEgUH
    bV1mqE99cwJBAOVSV4NBQvwbWcnU5i7TV6mKXhvHr4bOaENgk4MdNgVo6miZkiS5
    T7kreSKrRmzrPJp22JtNhYtm7FmUsapczJcCQQCRLFZ5AtbugF+viv5WLeUTQC54
    IyGDJem+tJerQwN961LqCSMpuDpu6RdyHjremeRJFxsjvCu6o/2ljMCpooV/AkEA
    v0+MdpGxYkUnCPw19AaYcXZfwGk8hAgab2tYZN+vu5+lPxIvG7gFTIN6EXQ10pQF
    AQ/48MchjASXVLx545h7jQJASe8x52j31Zr9t4yT3xItU3qfHdgJcNKHH2ICCTDS
    QQ1dNxjufvP22lUey2Y1v6As0nFnxb2wFbqaH0EOORUOCQ==
    -----END RSA PRIVATE KEY-----
    

    -----BEGIN PUBLIC KEY-----
    MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlQmZUbHRpl9e9d1LmfUdXiV7U
    V1FZr2cHtTT4RwHWi1oMCJnZYEQQDDr76Qpow83CBqyEi8Ia4Fkvpb6XVekhNcCE
    AB/ac7UTHYJiB5aSE/zixiA1pHpumlYt9RmItgPxNIv9DRRCTh0sr8Yqxv/85B1Z
    7bgaE5k5EGQPEi6i1QIDAQAB
    -----END PUBLIC KEY-----
    

    格式是什么?? 如何解析它来获得私钥d、公共指数e和模数n以用于RSA?

    0 回复  |  直到 6 年前
        1
  •  2
  •   President James K. Polk    6 年前

    第一种格式记录在 PKCS#1 . 它是RSAPrivateKey结构的DER编码。

    第二个的格式记录在 RFC 5280 . 它是SubjectPublicKeyInfo结构的DER编码,尽管Java命名了它们的类来表示它 X509EncodedKeySpec .

    this RFC

    如何解析?找到一个库来解析它,这些格式很复杂,而且在这样的解析器中有很长的bug历史。