Android SecretKey AES 和 JWK : 如何转换
Android SecretKey AES and JWK : How to convert
我有一个需要共享 AES 私钥的应用程序。 (它们被包裹起来)。
服务器将以 JWK 格式发送和接收密钥。
目前,在 android 中,我可以像这样生成 AES 密钥:
public SecretKey generate() throws NoSuchProviderException, NoSuchAlgorithmException, InvalidAlgorithmParameterException {
KeyGenerator keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore");
KeyGenParameterSpec keyGenParameter = new KeyGenParameterSpec.Builder("MyKeyAlias", KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)
.setBlockModes(KeyProperties.BLOCK_MODE_GCM)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
.build();
keyGenerator.init(keyGenParameter);
return keyGenerator.generateKey();
}
有没有简单的方法可以将 SecretKey 转换为 JWK 格式?反之亦然
如果没有,我在SecretKeyclass中看到了getEncoded()方法。
How to export symmetric encryption key?
也许我需要创建自己的 class 来进行转换
谢谢
我决定创建自己的 JWK class。
我使用 GSON 库来解析/字符串化 JSON.
另一个解决方案:
@jps 建议使用这个库
connect2id.com/products/nimbus-jose-jwt/examples/jwk-generation
我有一个需要共享 AES 私钥的应用程序。 (它们被包裹起来)。 服务器将以 JWK 格式发送和接收密钥。
目前,在 android 中,我可以像这样生成 AES 密钥:
public SecretKey generate() throws NoSuchProviderException, NoSuchAlgorithmException, InvalidAlgorithmParameterException {
KeyGenerator keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore");
KeyGenParameterSpec keyGenParameter = new KeyGenParameterSpec.Builder("MyKeyAlias", KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)
.setBlockModes(KeyProperties.BLOCK_MODE_GCM)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
.build();
keyGenerator.init(keyGenParameter);
return keyGenerator.generateKey();
}
有没有简单的方法可以将 SecretKey 转换为 JWK 格式?反之亦然
如果没有,我在SecretKeyclass中看到了getEncoded()方法。 How to export symmetric encryption key?
也许我需要创建自己的 class 来进行转换
谢谢
我决定创建自己的 JWK class。 我使用 GSON 库来解析/字符串化 JSON.
另一个解决方案:
@jps 建议使用这个库 connect2id.com/products/nimbus-jose-jwt/examples/jwk-generation