gpt4 book ai didi

javascript - 如何使用 forge 在 javascript 中使用给定的私钥解密 rsa-cipher

转载 作者:行者123 更新时间:2023-11-30 17:42:14 27 4
gpt4 key购买 nike

我尝试在 php 中加密文本并使用 RSA 通过 javscript 解密。在 php 中,我使用 phpseclib。对于客户端站点,我尝试了 digitalbazaar 的 forge

根据文档,他们在一个对象中创建了一个私钥和一个公钥,然后开始了魔法。

 /*** Generating 1024-bit key-pair */  
keys = forge.pki.rsa.generateKeyPair(1024);

/*** public key encryption */
var ciphertext = keys.publicKey.encrypt("Secret");

/*** private key decryption */
var plaintext = keys.privateKey.decrypt(ciphertext);

有没有一种方法可以使用给定的私钥作为字符串来解密 forge 中的消息?

最佳答案

您可以转换 PKCS#8 PEM 编码的私钥(即以 -----BEGIN RSA PRIVATE KEY----- 开头的 key 字符串)

var pem = readPEMKey(...); // read the string
var privKey = forge.pki.privateKeyFromPem(pem);
var pubKey = forge.pki.rsa.setPublicKey(privKey.n, privKey.e);

/*** public key encryption */
var ciphertext = pubKey.encrypt("Secret");
/*** private key decryption */
var plaintext = pkey.decrypt(ciphertext);

也可以(并且有点复杂)使用 key 参数从头开始创建私钥:

var privKey = forge.pki.setPrivateKey(n, e, d, p, q, dP, dQ, qInv);

哪里:

  • n: key 模数
  • e: 私有(private)指数
  • p:第一模质因数
  • q:二次模质因数
  • d: 公共(public)指数
  • dP、dQ、qInv:chinese remainder theorem参数

所有这些参数都应该是使用 forge.util.createBuffer 函数创建的 BigInteger

关于javascript - 如何使用 forge 在 javascript 中使用给定的私钥解密 rsa-cipher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20827566/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com