基于前端的非对称加密,PHP接口使用分段

北京荨麻疹医院好不好 https://jbk.familydoctor.com.cn/bjbdfyy_zx/50245/

在前后端开发的时候,我们常常会选择加密的方式,来确保数据交互的安全性,除了签名的做法之外,我们还常常选择非对称加密,今天要提到的这个前端的加密插件,使用比较方便,又可以支持多段加密,日常需求完美解决!

非对称加密

加密方式就是通过公钥和私钥的配合实现的,公钥加密后只能通过其对应的私钥才能解密。怎么来理解,A公司要给B公司发送商业机密,怕被人拦截知道,这时B公司只要把们的公钥发给A公司,A公司加密后再发给你B公司,B公司解密下就知道内容了,其他获取到后,没有私钥是解不开的。

配置密钥对

在操作之前,你得自己生成一套密钥对,保存备用

文件引入

前端html文件引入,加密js文件jsencrypt.js

scriptsrc=jsencrypt.js/script

使用说明

调用方法很简单,只要传入公钥,调用函数就可以了。

varencrypt=newJSEncrypt();encrypt.setPublicKey(pubkey);//pubkey公钥

varencryptData=encrypt.encryptLong(JSON.stringify(textValue));//textValue加密串

写了个demo

demo单独引用了jquery文件,便于测试

htmlheadmetacharset=UTF-8title加密测试/titlescriptsrc=jquery.js/scriptscriptsrc=jsencrypt.js/scriptstylelabel{width:50%;display:block;margin-bottom:5px;}button{width:8%;margin-right:90%;margin-top:15px;margin-bottom:5px;height:35px;}textarea{width:px;height:px;padding:10px;margin-bottom:10px;overflow:auto;}/style/headbodyh1加密测试/h1label测试公钥/labeltextareaid=pubkeyplaceholder=请输入公钥/textarealabel测试私钥/labeltextareaid=prikeyplaceholder=请输入私钥/textarealabel内容/labeltextareaid=textValueplaceholder=请输入私钥/textareabuttonid=inOut加密/buttonlabel加密结果/labeltextareaid=inTextplaceholder=请输入私钥/textarealabel解密内容/labeltextareaid=rtextValueplaceholder=请输入密串/textareabuttonid=outIn解密/buttonlabel解密结果/labeltextareaid=outTextplaceholder=请输入私钥/textareascript(function(){//公钥varpubkey=(#pubkey).val();//私钥varprikey=(#prikey).val();//加密(#inOut).click(function(){//待加密串vartextValue=(#textValue).val();varencrypt=newJSEncrypt();encrypt.setPublicKey(pubkey);varencryptData=encrypt.encryptLong(JSON.stringify(textValue));(#inText).val(encryptData);(#rtextValue).val(encryptData);});//解密(#outIn).click(function(){//待解密串varrtextValue=(#rtextValue).val();varencrypt=newJSEncrypt();encrypt.setPrivateKey(prikey);vardecryptData=encrypt.decryptLong(rtextValue);(#outText).val(decryptData);});});/script/body/html

补充

为了便于测试,我们把私钥解密的方法都写进函数里去了,实际线上测试可以删除解密方法。




转载请注明:http://www.aierlanlan.com/grrz/2846.html