【发布时间】:2020-12-19 14:09:22
【问题描述】:
我需要有关 NodeJS 代码的帮助。我将为下面的JAVA代码编写nodejs代码。
String rsaPublicKey = "...";
String data = "...";
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(Base64.getDecoder().decode(rsaPublicKey.getBytes()));
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
publicKey = keyFactory.generatePublic(keySpec);
Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] bytes = cipher.doFinal(data.getBytes("UTF-8"));
我尝试使用“Forge”,但不知道如何将给定的 RSA 公钥转换为 Forge 公钥。 谁能帮我解决这个问题?
【问题讨论】:
-
欢迎来到 Stackoverflow。我会在Java端以PEM形式(“----- BEGIN PUBLIC KEY--- ...”)编写PublicKey,将此字符串发送到node.js并使用“var publicKey”伪造重建PublicKey = pki.publicKeyFromPem(pem);".
-
谢谢@MichaelFehr。我已经试过了。但是没有得到与 Java 相同的模数。 System.out.println(publicKey);在 NodeJs 我试过 var publicKeyFromPem = pki.publicKeyFromPem(pemPublicKey); console.log(publicKeyFromPem.n.toString(16));得到不同的结果,
标签: java node.js node-modules public-key-encryption forge