首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用伪造方法解密javascript中给定私钥的rsa-密码

如何使用伪造方法解密javascript中给定私钥的rsa-密码
EN

Stack Overflow用户
提问于 2013-12-29 16:46:34
回答 1查看 3K关注 0票数 1

我尝试用php加密文本,并使用RSA使用javscript解密。在php中,我使用phpseclib。对于客户端网站,我已经尝试了forge的数字相册。

根据文档,他们在一个对象中创建一个私有密钥和一个公钥,并启动魔术。

代码语言:javascript
复制
 /*** 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); 

是否有方法使用给定的私钥作为字符串来解密伪造中的消息?

EN

回答 1

Stack Overflow用户

发布于 2013-12-30 09:25:37

您可以转换PKCS#8 PEM编码的私钥(即用-----BEGIN RSA PRIVATE KEY-----标记的密钥字符串)。

代码语言:javascript
复制
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); 

使用密钥参数从头创建私钥也是可能的(也是更复杂的):

代码语言:javascript
复制
var privKey = forge.pki.setPrivateKey(n, e, d, p, q, dP, dQ, qInv);

其中:

  • n:键模
  • e:私人指数
  • p:第一模数素数
  • q:第二模素数因子
  • d:公众指数
  • dP,dQ,qInv:中国剩余定理参数

所有这些参数都应该是用BigInteger函数创建的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20827566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档