我在NodeJS中使用Java的公钥加密时遇到了一些麻烦。
我在keytool
中创建了一个RSA密钥,并将公钥作为base64编码字符串输出。
Base64.Encoder encoder = Base64.getEncoder();
byte[] pubKeyBytes = publicKey.getEncoded();
String pubKeyBase64 = encoder.encodeToString(pubKeyBytes);
然后取base64编码的公钥,用-----begin public key----
和-----end public key-----
封装,并用它加密,然后base64编码节点内的字符串。
const encryptedBuffer = crypto.publicEncrypt(encodedPublicKey, buffer);
const encryptedEncodedText = encryptedBuffer.toString("base64");
任何帮助都将不胜感激!
经过大量的搜索和测试,结果是一个填充问题。
提供给节点did的公钥未被传递密码短语,因此根据文档,它默认为rsa_pkcs1_oaep_padding
:
在Java端进行解密时,需要如下方式通知Java那个填充:
Cipher cipher = Cipher.getInstance("RSA/NONE/OAEPPadding");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
问题内容: 我用以下方法生成了一个私钥: 在此之后,我生成了一个公共密钥: 我想使用私钥对某些消息进行签名,并使用诸如此类的代码对其他私钥进行验证: 我找到了一种将私钥转换为PKCS8格式并加载它的解决方案。它可以与以下代码一起工作: 最后,我的问题是:如何从文件加载RSA公钥? 我认为也许我需要将我的公共密钥文件转换为x509格式,然后使用。但是我该怎么办呢? 问题答案: 下面是从相关信息的链接
我正在使用密钥对模块 它可以正常工作创建公钥和私钥 我的公钥: 我正在使用Jsencrypt 使用那个公钥不起作用..数据未加密 但是jsencrypt生成公钥工作正常。你可以帮我吗? 如何使用我的生成密钥对RSA公钥在js加密?
我有以下公钥(作为示例): 我需要能够将其转换为可以插入ssh known_hosts文件的格式。例如: 谢了!
作为标题,如何在Java中从SSH RSA公钥计算指纹?我从sample.pub获得了一个rsaPublicKey对象,并使用库Apache Commons Codec但当使用ssh-keygen命令sample.pub时,我得到了不同的指纹,如下所示
我已生成一个私钥,其中包含: 在此之后,我生成了一个公钥: 我想使用我的私钥对一些消息进行签名,并使用我的公钥验证一些其他消息,代码如下: 我找到了一个将私钥转换为PKCS8格式并加载的解决方案。它适用于以下代码: 最后我的问题是:如何从文件中加载RSA公钥? 我想可能需要将公钥文件转换为x509格式,并使用。但是我该怎么做呢?
我们如何加载他们的公钥?