场景描述
最近的开发项目中设计用户敏感数据,考虑到严谨性,需要对这类敏感数据进行加密。
经过多次对比,最终选择了RSA进行加密。分别是前端加密数据,发送给后端进行解密;后端加密数据,前端进行解密。
前端加密,后端解密
这种情况在网上还是有很多案例的,理解起来也比较简单。就是后端生成公私**对,把公钥发给前端进行加密,后端接收到数据后进行解密。
后端加密,前端解密
至于这类说明网上倒是很少了,可能也是搜索的不多。
这种做法主要是前端生成公私**对,然后把公钥发送给后端,后端依次对数据进行加密传输,前端接收后进行解密。
具体做法
其实也很简单
- 界面引入jsencrypt.js文件
- 创建对象
var encrypt = new JSEncrypt() - 使用getKey()方法:如果没有使用set方法设置过key,即key为空,则会生成公私**对;否则会返回现有**对
var keyPair = encrypt.getKey(); keyPair.getPublicBaseKeyB64(); //可以获取公钥字符串 keyPair.gePrivateBaseKeyB64(); //可以获取私钥字符串 //然后一下写法会包含注释字符 : //-------- BEGIN ... -------- //-------- END ... -------- keyPair.getPublicKey(); keyPair.getPrivateKey();
小记
以上为最近研究后的结论,若有错误或其他问题,请及时联系,感谢指教。