前言

在需求开发中,为了安全起见,我们都会难免遇到需要对一些敏感参数进行加密或者解密。所以,今天给大家分享的就是使用jsencrypt对请求参数进行RSA加密与解密,发这篇文章其实主要因为近期我的一位朋友问我关于jsencrypt的加密问题,记得在很早之前隐约记得整过一次这玩意,所以今天又给整理了一下,把整个的操作流程当做一篇文章给记录下来,以防急时之需!!!

如何使用?

使用之前,需要给项目引入jsencrypt依赖,如果你是工程项目,请给项目中拉取以下依赖



npm



拉取之后可以通过以下方式引入到项目中进行使用



import



如果是传统开发的朋友,请不用着急,本次讲解的demo就是使用的传统方式。
jsencrypt在加密或者解密的时候需要用到密钥,所以需要先生成一对密钥:公钥(加密),私钥(解密)。

生成方法

在终端(基于Unix的操作系统)中输入以下命令



openssl genrsa -out rsa_1024_priv.pem 1024



执行这段命令后会生成一个私钥,可以通过执行以下操作进行查看



cat rsa_1024_priv.pem



然后就可以将其复制并粘贴到需要使用私钥的地方即可。
接下来,可以通过执行以下命令获取公钥



openssl rsa -pubout -in rsa_1024_priv.pem -out rsa_1024_pub.pem



同样,可以通过执行以下操作进行查看



cat



如果已经完成了以上操作,那么恭喜你,你现在可以去给参数进行加密了。

如何给参数加密?

给简单的字符串进行加密与解密,可以使用以下方式



//加密获得签名,key公钥,str加密对字符串内容



如果是给一段较长的字符串加密,这里可能就会有坑了,因为长度问题可能会造成加解密失败,如果你遇到了,请使用下面方式进行分段加解密,这样就解决了该问题的出现



import



在上方代码中出现了几个未定义的方法,hex2b64,b64tohex,这两个方法是base64分段的算法函数,下面是补充的算法封装函数依赖



var



以上是关于本文的所有内容,查看demo请移步