学习JSEncrypt库的笔记

本文介绍如何利用JSEncrypt库配合OpenSSL生成RSA密钥对,并在网页环境中实现数据的加密与解密。通过在终端生成私钥和公钥,然后将它们嵌入到HTML页面中,使用JavaScript实现加密和解密功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何使用JSEncrypt库

这个库需要配合OpenSSL一起使用,接下来让我们看看如何使用这个库:

  • 在终端内(基于Unix的操作系统)中输入以下内容:

    openssl genrsa -out rsa_1024_priv.pem 1024
    
  • 这会生成一个私钥,您可以在终端进行以下操作来看到他:

    cat rsa_1024_priv.pem
    
  • 你可以拷贝和粘贴这个私钥到index.html中需要他的位置.

  • 接下来,你可以通过执行以下命令来获取公钥:

    openssl rsa -pubout -in rsa_1024_priv.pem -out rsa_1024_pub.pem
    
  • 你可以键入下列命令来查看公钥:

    cat rsa_1024_pub.pem
    
  • 现在将其复制并粘贴到index.html中的public键中.

  • 现在,您可以通过在代码中执行以下操作来转换加密文本和从加密文本转换:

    	<html>
    	  <head>
    	    <title>JavaScript RSA Encryption</title>
    	    <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    	    <script src="bin/jsencrypt.min.js"></script>
    	    <script type="text/javascript">
    	    //当页面加载完毕调用代码
    	     $(function() {
    
    	        // 单击时快速运行加密解密
    	        $('#testme').click(function() {
    	
    	          // 使用公钥加密
    	          var encrypt = new JSEncrypt();
    	          encrypt.setPublicKey($('#pubkey').val());
    	          var encrypted = encrypt.encrypt($('#input').val());
    	
    	          // 使用私钥解密
    	          var decrypt = new JSEncrypt();
    	          decrypt.setPrivateKey($('#privkey').val());
    	          var uncrypted = decrypt.decrypt(encrypted);
    	
    	          // 现在简单检查一下往返是否有效
    	          if (uncrypted == $('#input').val()) {
    	            alert('It works!!!');
    	          }
    	          else {
    	            alert('Something went wrong....');
    	          }
    	        });
    	      });
    	    </script>
    	  </head>
    	  <body>
    	    <label for="privkey">Private Key</label><br/>
    	    <textarea id="privkey" rows="15" cols="65">-----BEGIN RSA PRIVATE KEY-----
    			MIICXQIBAAKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQ
    			WMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNR
    			aY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQAB
    			AoGAfY9LpnuWK5Bs50UVep5c93SJdUi82u7yMx4iHFMc/Z2hfenfYEzu+57fI4fv
    			xTQ//5DbzRR/XKb8ulNv6+CHyPF31xk7YOBfkGI8qjLoq06V+FyBfDSwL8KbLyeH
    			m7KUZnLNQbk8yGLzB3iYKkRHlmUanQGaNMIJziWOkN+N9dECQQD0ONYRNZeuM8zd
    			8XJTSdcIX4a3gy3GGCJxOzv16XHxD03GW6UNLmfPwenKu+cdrQeaqEixrCejXdAF
    			z/7+BSMpAkEA8EaSOeP5Xr3ZrbiKzi6TGMwHMvC7HdJxaBJbVRfApFrE0/mPwmP5
    			rN7QwjrMY+0+AbXcm8mRQyQ1+IGEembsdwJBAN6az8Rv7QnD/YBvi52POIlRSSIM
    			V7SwWvSK4WSMnGb1ZBbhgdg57DXaspcwHsFV7hByQ5BvMtIduHcT14ECfcECQATe
    			aTgjFnqE/lQ22Rk0eGaYO80cc643BXVGafNfd9fcvwBMnk0iGX0XRsOozVt5Azil
    			psLBYuApa66NcVHJpCECQQDTjI2AQhFc1yRnCU/YgDnSpJVm1nASoRUnU8Jfm3Oz
    			uku7JUXcVpt08DFSceCEX9unCuMcT72rAQlLpdZir876
    			-----END RSA PRIVATE KEY-----</textarea><br/>
    			    <label for="pubkey">Public Key</label><br/>
    			    <textarea id="pubkey" rows="15" cols="65">-----BEGIN PUBLIC KEY-----
    			MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtN
    			FOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76
    			xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4
    			gwQco1KRMDSmXSMkDwIDAQAB
    			-----END PUBLIC KEY-----</textarea><br/>
    				   <label for="input">Text to encrypt:</label><br/>
    				   <textarea id="input" name="input" type="text" rows=4 cols=70>This is a test!</textarea><br/>
    				   <input id="testme" type="button" value="Test Me!!!" /><br/>
    	  </body>
    </html>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值