希望有人能在这里给我一点帮助。
我需要生成一个 1024 位 RSA 密钥供一次性使用(每次运行后都被丢弃)并将公钥传递给远程客户端。远程客户端期望密钥是“在 x509 中定义的 ASN.1 格式”。(我知道如何首先使用 openssl 制作私钥,然后如何提取公钥 - 都是 ascii 格式。我坚持转换为 ASN.1,它需要是十六进制的)
它用于与 Minecraft 客户端通信时使用。(我写的是服务器)
这是我必须处理的描述所需内容的信息: http ://wiki.vg/Protocol_Encryption#Key_Exchange (特别是密钥交换部分)
理想情况下,我需要在 node.js 中执行此操作。(或者如果可以的话,对 openssl 的系统调用会很好)
!((此行下方的信息可能不相关))
这个想法是我将 ASN.1 格式的公钥发送给客户端。客户端加密密码并将其发送回我(服务器),我需要在其中解密并存储密码以供以后使用。
我的服务器是用 node.js 编写的,因此非常感谢我如何在 node.js 中执行此操作,或者通过调用 openssl 作为命令提示符来提供任何建议。
请注意,我对 ASN.1 知之甚少,因此我可能遗漏了一些明显的东西。(希望)
我已经在谷歌上看了几个小时,我发现了很多与这个主题相关的东西,但我要么无法正确理解它们,要么根本无法让它们发挥作用。
需要明确的是 - 我不希望使用 ASN.1 加密任何数据 - 我只需要以 ASN.1 格式将公钥发送给客户端。(大概我可以很容易地解密通过调用openssl发回的加密密码,使用生成的私钥开始)
如果有人可以在这里帮助我一点,将不胜感激。
詹姆士