当前位置: 首页 > 知识库问答 >
问题:

如何从64字节的十六进制原始密钥生成PEM格式的密钥

向嘉誉
2023-03-14
-----BEGIN RSA PUBLIC KEY-----
BASE64 ENCODED DATA
-----END RSA PUBLIC KEY-----
RSAPublicKey ::= SEQUENCE {
    modulus           INTEGER,  -- n
    publicExponent    INTEGER   -- e
}

所以唯一的问题是如何从原始十六进制编码的密钥得到这个DER结构。

如果有任何帮助,我将不胜感激!

共有1个答案

何玺
2023-03-14

感谢Maarten Bodewes和他关于密钥是secp256k1而不是RSA的评论。

经过一些进一步的研究,我终于设法用secp256k1密钥非对称地加密/解密一条消息。在Cryptos ECDH的帮助下,I类创建了一个密钥对象,然后将私钥分配给它。分配时,可以使用getPublicKey()轻松地派生公钥。所有参与者都将为自己创建一个密钥对象,并为其分配私钥。然后它们共享检索到的公钥(在我的例子中是通过共享介质)。此外,我使用了一个名为standard-ecies的NPM包,它提供了ECIES加密方案。

代码:

const crypto = require('crypto');
const ecies = require('standard-ecies');

var buffer = new Buffer("Hello World");

var ecdh = crypto.createECDH('secp256k1');
ecdh.setPrivateKey(privateKey);

var encryptedText = ecies.encrypt(ecdh.getPublicKey(), buffer);
var decryptedText = new Buffer(ecies.decrypt(ecdh, encryptedText));
 类似资料:
  • 我有十六进制格式的私钥: 308204BC020100300D06092A864886F70D0101010500048204A6308204A20201000282010100B3B6F5AB13FCDECC12438581E90302E12BCF14570B49DCA2BF40957B79B10630DE20CB18B21D7393AC54FBA9D236F09235C4AF4D8E9227B

  • 我在C中使用SHA512来获取散列值。我是这样做的: 我试图通过以下方式将其转换为十六进制: 但这不是我想要的。 如何将无符号字符中的二进制文件转换为人类可读的格式?打印字符[]的最佳案例。 “数据哈希”的哈希应该是: D98F945FEE6C9055592FA8F398953B3B7CF33A47CFC50667CBCA1ADB344FF18A4F442758810186FB480DA89BC9

  • 我正在尝试创建一个公钥以允许我推送到Git,但我的. ssh文件夹尚未创建。 以下是我运行的命令: $ssh-keygen-t rsa-Cemaill@me.com 生成公共/私有rsa密钥对 输入保存密钥的文件(/h/.ssh/id\u rsa): 这就是H:驱动器配置、数据、配置文件、配置文件中的全部内容。V2 我认为有一个问题,因为当我得到提示输入文件,其中保存密钥(/h//. ssh/id

  • 问题内容: 如何获得Python 3输出原始十六进制字节?我想输出十六进制。 如果使用,则会得到ASCII‘170’。 问题答案: 解决方案是首先创建一个对象: 然后将其输出到使用缓冲写入器

  • 如果我尝试使用OpenSSL命令行生成3TDES加密的PKCS 8密钥: 我得到: PKCS8 RFC没有说明必须使用哪种算法来创建密钥块。它确实给出了PKCS5算法作为例子。有没有办法使用OpenSSL创建一个由DES密钥加密的PKCS8密钥?如果不是,它是OpenSSL不支持的还是一个非常不标准的事情? 下面是通过OpenSSL命令行(密码测试)使用基于密码的加密创建的示例: 这里是我手工制作

  • 我在C#中有一个传递公钥字符串的方法。 我传递的公钥字符串是 我得到一个错误组织。BouncyCastle。安全InvalidKeyException:“不是RSA密钥”。我传递给该方法的公钥格式是否不正确?