使用私钥的Javascript RSA解密

使用私钥的Javascript RSA解密,javascript,rsa,public-key-encryption,encryption,private-key,Javascript,Rsa,Public Key Encryption,Encryption,Private Key,您好,我在Javascript中设置了以下脚本: <!DOCTYPE html> <html lang="en"> <head> <script src="jquery-1.7.2.min.js" type="text/javascript"></script> <script language="JavaScript" type="text/java

您好,我在Javascript中设置了以下脚本:

<!DOCTYPE html>
    <html lang="en">
            <head>
            <script src="jquery-1.7.2.min.js" type="text/javascript"></script>
            <script language="JavaScript" type="text/javascript" src="jsbn.js"></script>
            <script language="JavaScript" type="text/javascript" src="rsa.js"></script>
            <script language="JavaScript">

                function encryptData(){
                    var pem ="-----BEGIN PUBLIC KEY-----\
                    MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+tii3IwzHa4i142kAB0dRVXoXA2Q8oF48UgMA\
                    AV54+JDED5iVyJK1s7J/xGi4U3+9sRoraE7bS19Nihs5DuYa0gsbKs/5jXOtKiw94fAtMyJTcX0d\
                    SzZhJKcX9vEzI27Hdu1rNFY64Ixz3KjrG1N/pXHtwjE1Ira5XZdTezx0wwIDAQAB\
                    -----END PUBLIC KEY-----";
                    var key = RSA.getPublicKey(pem);
                    var message = "some text to RSA encrypt";
                    var encryptedMessage = RSA.encrypt(message, key);
                    $('#RSAMessageEncrypted').html(encryptedMessage);
                }
            </script>
            </head>
        <body onload=encryptData();>
        <form>
            <strong>RSA encrypted Message :</strong> <textarea rows="10" cols="100"   id="RSAMessageEncrypted"></textarea><br>
        </form> 
        </body>
    </html>
我的问题如下:如何使用该公钥派生的私钥对解密我的消息?有解密库吗

我的私钥是:

-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC+tii3IwzHa4i142kAB0dRVXoXA2Q8oF48UgMAAV54+JDED5iVyJK1s7J/xGi4
U3+9sRoraE7bS19Nihs5DuYa0gsbKs/5jXOtKiw94fAtMyJTcX0dSzZhJKcX9vEzI27Hdu1rNFY6
4Ixz3KjrG1N/pXHtwjE1Ira5XZdTezx0wwIDAQABAoGBAJY4Gd4XZ6t1Epxi4oQ5N33jXGXgMAZp
M5FD8EUCzw1ujWlB96iT8qvZPdLSPMJkUwxyAfELGoI13n3POR46lBhRpYKkTZm1UmEBscdO2B9w
B7YUM9caJG4TgWBKxD8KLriQANnXZrv9zNGx4Cs0USeQgWuDfgkBF+PvL5AVq+jRAkEA+O0MNvBM
kGtGCLt/V34jiivGs9HtXKSJY6vI60GYZYB7D3SniYVUsMocC+O3vyqdpMiO/szfLTAWdXB2yl3Q
VwJBAMQhmQkT57rJ07SS40t1HGonryrmGF3BcHw9sVCijZF/jrbKeL5XmhnbCr9Lhy/InepcSRFI
Pqzj32w0timLi3UCQCVsliKIXCp2RlA3yDxiNXunezc7v4DnJ9S5VfqwoPXZrCa1th6B0irGKBNN
iCmQgaTtljoOmRsVGLtNTj68ff8CQGeiLR/b0bUkEeY3OzzS27nH0EoFnNhlbw9m9btauR0pXnp9
j8FbvoRs9kfQG9WG1tJQAxfLqbpnCdY+IAbhwkUCQQDOIrm78sSuVL+U6f98P2eDSzhKgnepEEVJ
u5iBs3lT5T+p+Xov6DPLd13Pm7Lyppj8S7pW/1CwkTVwW+U3O2kj
-----END RSA PRIVATE KEY-----

首先,我希望这不是您将在生产中使用的RSA私钥


关于在JavaScript端执行加密/解密,有各种库,例如和,用于执行简单的加密/解密,但是您对这些工具甚至您的体系结构的主要关注是性能。我不会使用JavaScript进行RSA加密,除非这是绝对必要的,并且没有其他解决方法

首先,我希望这不是您将在生产中使用的RSA私钥


关于在JavaScript端执行加密/解密,有各种库,例如和,用于执行简单的加密/解密,但是您对这些工具甚至您的体系结构的主要关注是性能。我不会使用JavaScript进行RSA加密,除非这是绝对必要的,并且没有其他解决方法

您使用的rsa模块仅用于加密;要执行解密,您需要,您好,谢谢您的回答。您能告诉我如何使用jsbn2.js和rsa2.js吗?我尝试过,但没有用于读取密钥的RSA.getPrivateKey(pem)或RSA.decrypt()。谢谢。我想我也有同样的问题:我们应该用函数“RSASetPrivate(N,E,D)”读取私钥,然后用函数“RSADecrypt(ctext)”解码整个私钥。但是似乎没有一种方法可以简单地读取私钥,就像我们直接使用openssl那样,使用类似“openssl rsautl-decrypt-inkey private.key”的东西;要执行解密,您需要,您好,谢谢您的回答。您能告诉我如何使用jsbn2.js和rsa2.js吗?我尝试过,但没有用于读取密钥的RSA.getPrivateKey(pem)或RSA.decrypt()。谢谢。我想我也有同样的问题:我们应该用函数“RSASetPrivate(N,E,D)”读取私钥,然后用函数“RSADecrypt(ctext)”解码整个私钥。但是,似乎没有一种简单地读取私钥的方法,就像我们直接使用openssl那样,使用类似“openssl rsautl-decrypt-inkey private.key”的东西。
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC+tii3IwzHa4i142kAB0dRVXoXA2Q8oF48UgMAAV54+JDED5iVyJK1s7J/xGi4
U3+9sRoraE7bS19Nihs5DuYa0gsbKs/5jXOtKiw94fAtMyJTcX0dSzZhJKcX9vEzI27Hdu1rNFY6
4Ixz3KjrG1N/pXHtwjE1Ira5XZdTezx0wwIDAQABAoGBAJY4Gd4XZ6t1Epxi4oQ5N33jXGXgMAZp
M5FD8EUCzw1ujWlB96iT8qvZPdLSPMJkUwxyAfELGoI13n3POR46lBhRpYKkTZm1UmEBscdO2B9w
B7YUM9caJG4TgWBKxD8KLriQANnXZrv9zNGx4Cs0USeQgWuDfgkBF+PvL5AVq+jRAkEA+O0MNvBM
kGtGCLt/V34jiivGs9HtXKSJY6vI60GYZYB7D3SniYVUsMocC+O3vyqdpMiO/szfLTAWdXB2yl3Q
VwJBAMQhmQkT57rJ07SS40t1HGonryrmGF3BcHw9sVCijZF/jrbKeL5XmhnbCr9Lhy/InepcSRFI
Pqzj32w0timLi3UCQCVsliKIXCp2RlA3yDxiNXunezc7v4DnJ9S5VfqwoPXZrCa1th6B0irGKBNN
iCmQgaTtljoOmRsVGLtNTj68ff8CQGeiLR/b0bUkEeY3OzzS27nH0EoFnNhlbw9m9btauR0pXnp9
j8FbvoRs9kfQG9WG1tJQAxfLqbpnCdY+IAbhwkUCQQDOIrm78sSuVL+U6f98P2eDSzhKgnepEEVJ
u5iBs3lT5T+p+Xov6DPLd13Pm7Lyppj8S7pW/1CwkTVwW+U3O2kj
-----END RSA PRIVATE KEY-----