【问题标题】:How can I generate a RSA key for use with com.auth0 java-jwt?如何生成用于 com.auth0 java-jwt 的 RSA 密钥?
【发布时间】:2018-03-27 15:01:59
【问题描述】:

https://github.com/auth0/java-jwt

说明为 JWT 设置算法应该很简单

//RSA
RSAPublicKey publicKey = //Get the key instance
RSAPrivateKey privateKey = //Get the key instance
Algorithm algorithmRS = Algorithm.RSA256(publicKey, privateKey);

问题是我不知道如何在不接触文件系统的情况下创建 RSAPublicKey 和 RSAPrivateKey 实例。

  1. 它应该是安全的。
  2. 它不应该在文件系统上创建密钥,因为我打算通过另一种方法存储它。

通常,在我做对之前,我会猜到这种事情,但考虑到它是密码学,我想做正确的事情。

keygen = KeyPairGenerator.getInstance("RSA");
        RSAKeyGenParameterSpec spec = new RSAKeyGenParameterSpec(2048, RSAKeyGenParameterSpec.F4); //What does F4 mean vs F0?
            keygen.initialize(spec);
            KeyPair keypair = keygen.generateKeyPair();
            PublicKey pub = keypair.getPublic(); //Wrong type, need RSAPublicKey
            PrivateKey priv = keypair.getPrivate(); //Wrong type, need RSAPrivateKey

【问题讨论】:

    标签: java cryptography rsa jwt


    【解决方案1】:

    您可以直接将公钥和私钥转换为RSAPublicKey 和RSAPrivateKey,因为您使用的是 RSA KeyPairGenerator

    RSAPublicKey rsaPublicKey = (RSAPublicKey) keypair.getPublic();
    RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keypair.getPrivate();
    

    您可以使用key.getEncoded(); 获取关键内容(无需强制转换)并将其存储为您喜欢的任何字节数组

    【讨论】:

    猜你喜欢
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    相关资源
    最近更新 更多