aaronzheng
V2EX  ›  问与答

如何用 Java 读取 openssl genrsa -aes256 生成的密钥

  •  
  •   aaronzheng · Apr 27, 2017 · 2906 views
    This topic created in 3394 days ago, the information mentioned may be changed or developed.

    研究了 2 日这个问题,如何用 Java 读取 openssl genrsa -aes256 生成的密钥,google 了 和读了一些文章,还是得不到答案。求大神指导一下。

    目前验证了这几个场景:

    1. 用 openssl 生成的 密钥对 封装的 pkcs8 可以用 Java PEMParser 读到信息。
    2. 用 openssl 生成的 密钥对 然后用来自签名的证书,都可以用 Java PEMParser 读到信息。 (正确点来说,这个密钥对 keyPair,其实只是 RSA_PRIVATEKEY 结构而已)

    然而最开始生成的 keyPair (openssl genrsa -aes256) 居然不能用 Java PEMParser 读到,百思不得其解。明明 passphrase 输入对的,但还是显示不对。目前按照我理解,就是 openssl 生成密钥对的时候,除了会用 所输入的 passphrase 还会对起进行转化,但是我也没有在命令行添加 salt 和 iv 和 k 这些参数,不知道为什么还是会被转化了。百思不得其解,求大神指点一下。

    
    进行 decrypt
    
    PEMDecryptorProvider pemDecryptorProvider = new JcePEMDecryptorProviderBuilder().setProvider(Constant.BOUNCY_CASTLE_PROVIDER).build("passphrase".toCharArray());
    
    PEMKeyPair pemKeyPair = pmeEncryptedKeyPair.decryptKeyPair(pemDecryptorProvider);
    
    PrivateKeyInfo privateKeyInfo = pemKeyPair.getPrivateKeyInfo();
    
    
    
    错误信息:
    org.bouncycastle.openssl.EncryptionException: exception using cipher - please check password and data.
    
    1 replies    2017-04-28 15:26:28 +08:00
    aaronzheng
        1
    aaronzheng  
    OP
       Apr 28, 2017 via iPhone
    已经自我解决了,用 des3 生成的都可以解密,用 aes 的不行,已经转用 des3 解决问题了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5427 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 01:24 · PVG 09:24 · LAX 18:24 · JFK 21:24
    ♥ Do have faith in what you're doing.