猿问

如何使用模数和指数为 Sign In with Apple 创建公共 RSA 密钥?

我正在为 IOS 应用程序中使用的 Apple 登录功能实现服务器端部分。

为了验证 JWT,我需要使用公钥。我目前停留在如何根据从 Apple 获得的模数和指数创建公钥。


墨色风雨
浏览 101回答 1
1回答

慕妹3242003

要从指数和模数生成公钥,需要将它们转换为 BigInteger,然后可以使用 Java 安全性中的 KeyFactory。例如:  String modulus = "modulus from Apple";  String exponent = "exponent from Apple";  byte[] modulusByte = Base64.getUrlDecoder().decode(modulus);  BigInteger modulusAsBigInt = new BigInteger(1, modulusByte);  byte[] exponentByte = Base64.getUrlDecoder().decode(exponent);  BigInteger exponentAsBigInt = new BigInteger(1, exponentByte);  RSAPublicKeySpec spec = new RSAPublicKeySpec(modulusAsBigInt, exponentAsBigInt);  KeyFactory factory = KeyFactory.getInstance("RSA");  PublicKey pub = factory.generatePublic(spec);
随时随地看视频慕课网APP

相关分类

Java
我要回答