Javascript RSA解密使用私钥 [英] Javascript RSA decryption using private key

查看:181
本文介绍了Javascript RSA解密使用私钥的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好我有这个我在Javascript中设置的脚本:

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

函数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 =一些文本到RSA加密;
var encryptedMessage = RSA.encrypt(message,key);
$('#RSAMessageEncrypted')。html(encryptedMessage);
}
< / script>
< / head>
< body onload = encryptData();>
< form>
< strong> RSA加密消息:< / strong> < textarea rows =10cols =100id =RSAMessageEncrypted>< / textarea>< br>
< / form>
< / body>
< / html>

我的文本区域填充了使用上述公钥在RSA中加密的邮件。



加密的消息是:

  oH1JVWIT7MOH4ObCjFlBuFcAUvooSZANMokFy5jApSi8n0ABVc9vwXP2EFl2x5 + UColU6s2VAU + RsZPV4ZgZu3 + GhN9pDUb1ZMVyYRECDy / 7h + mE + UdDZTPwP1TAcBrspL / XM6 + q6mJfUWbEKfR / 2vyNUhBxpt6QOhVaI29aHfU = 

我的问题如下:我如何解密我的使用该公开密钥派生的私钥对的消息?有没有解密图书馆?



我的私钥是:

  ----- BEGIN RSA私钥----- 
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 / 1Cwk TVwW + U3O2kj
----- END RSA PRIVATE KEY -----


解决方案

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



关于做在JavaScript端加密/解密,有各种各样的库,如 Standford的JSBN RSA加密库 ohdave.com的RSA在JavaScript实用程序中进行简单的加密/解密,但您对这些工具甚至您的体系结构的主要关注点是性能。我不会使用JavaScript进行RSA加密,除非是绝对必要的,没有其他的解决方法。


Hello I have this script that I set in 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>

My text area is filled with my message encrypted in RSA using the public key above.

The encrypted message is :

oH1JVWIT7MOH4ObCjFlBuFcAUvooSZANMokFy5jApSi8n0ABVc9vwXP2EFl2x5+UColU6s2VAU+RsZPV4ZgZu3+GhN9pDUb1ZMVyYRECDy/7h+mE+UdDZTPwP1TAcBrspL/XM6+q6mJfUWbEKfR/2vyNUhBxpt6QOhVaI29aHfU=

My question is as following: How can I decrypt my message using the private key pair that this public key was derived from? Is there any library for decryption?

My private key is :

-----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-----

解决方案

First of all, I hope that's not the RSA private key that you are going to use in production.

As regards to doing the encryption/decryption on JavaScript side, there are various libraries such as Standford's JSBN RSA Encryption library and ohdave.com's RSA in JavaScript utility for doing simple encryption/decryption, but your main concern with these tools and even your architecture is performance. I would not do RSA encryption with JavaScript unless it was absolutely necessary and there were no other workarounds.

这篇关于Javascript RSA解密使用私钥的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆