簡體   English   中英

如何在JavaScript中使用Forge使用給定的私鑰解密rsa密碼

[英]How to use forge to decrypt rsa-cipher with given private key in javascript

我試圖在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); 

有沒有一種方法可以使用給定的私鑰作為字符串來解密偽造的消息?

您可以轉換PKCS#8 PEM編碼的私鑰(即以-----BEGIN RSA PRIVATE 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); 

也可以(使用更為復雜的方法)使用關鍵參數從頭開始創建私鑰:

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

在哪里:

  • n:關鍵模數
  • e:私有指數
  • p:第一模質數因子
  • q:第二模質數因子
  • d:公共指數
  • dP,dQ,qInv: 中國余數定理參數

所有這些參數都應該是由forge.util.createBuffer函數創建的BigInteger

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM