Javascript当中的RSA加解密
2018-01-10 09:19
447 查看
最近一直在玩儿Vue。讲真,前端不是我的强项。不过项目需要,也就只好边学边用。一段时间下来,感觉前端也挺好。
老实说,这个博客大概有大半年没有更新过了,杂草大概长了好几米罢。这次写博,主要还是来源于SF上的一个问答。题主大致的意思是后端传了public key,前端需要使用RSA来加密数据。
对于我这种不善前端、前端水平烂到爆表的基佬,自然会谷歌一番解决方案。于是,搜索出了travist/jsencrypt@Github。起先,我是直接将这个丢在了答案区域。不料题主在使用的过程当中大概是踩了一些坑,于是追问了。
事实上,当前距离题主追问已经有好些天了,这里也不知道题主的问题有没有得到解决。闹太套,在经过实践只好,还是准备将其贴到这里,权
4000
当做个笔记。
项目构建什么的,这里不废话,我的实际项目使用的是
vue+
webpack,同时包管理使用的是
yarn。
首先,自然是需要引入
jsencrypt,超级简单。
1 | yarn add jsencrypt |
import到项目当中来
12345 | // 很重要!!!这里不是直接引入jsencryptimport JsEncrypt from 'jsencrypt/bin/jsencrypt'// 将jsencrypt压入到VueVue.prototype.$jsEncrypt = JsEncrypt |
1234567 | // 私钥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 rsa_1024_pub.pem 读取公钥内容 |
vue的组件,我们在组件中使用就会有类似下面的代码
12345678910111213141516171819202122232425262728293031323334353637 | // 实例化一个JSEncrypt对象let jse = new this.$jsEncrypt.JSEncrypt()jse.setPublicKey(`-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8ygMKjJLSUpnfXqt8lRSAdDxAHWKi9GbTFkCbAjkRCR6VUakxxXLXHQUtPCizKcvNpuYqZ5bO8LEgpY7SL3JEdEI9OuMnZ6ToeHPfcHeS+EgN0oYmdQ49RB5wZkcBEFk80OBEAM6VhnE0IuHGkU5ko9oPHq3boEQ3Ej6r3T+UhQIDAQAB-----END PUBLIC KEY-----`)// 设置需要加密的字符串let encrypted = jse.encrypt('Hello, world')// 输出加密结果console.log(encrypted)// 设置密钥jse.setPrivateKey(`-----BEGIN RSA PRIVATE KEY-----MIICXgIBAAKBgQC8ygMKjJLSUpnfXqt8lRSAdDxAHWKi9GbTFkCbAjkRCR6VUakxxXLXHQUtPCizKcvNpuYqZ5bO8LEgpY7SL3JEdEI9OuMnZ6ToeHPfcHeS+EgN0oYmdQ49RB5wZkcBEFk80OBEAM6VhnE0IuHGkU5ko9oPHq3boEQ3Ej6r3T+UhQIDAQABAoGBAIO8JwEedHlE4FBovBsT4Bl+gmhu2NxC1NlpBq3jkDSd+3RQZlLvp6IJgwo8l13lxWv8kVF3tVkzxTW1sQJjz0RYShH8vXLl94gf6mFkJbeOPP6uA0mGDG81yINwKUpE0RM6ZM9yKEeVdK3u67TkEBcC6Td5KBl8Yof3q7qxiOWhAkEA4BXEtpnfhgm37s1VjDxdIHTtWL1PihMT+SCOqp+Vv27ABVrxtDW/w2R3ZzR5ezROI2v1DVhj5wvsxPGXx6OpSQJBANetVvazS/5SQNvb+Cmjw9Rt5NilyxfX5IsSswaIojbwhZY2FVZyAlFH9K/YS2FYFyU7iIqN6IIkOxXpOcj/bV0CQQCRYM4MgWuotClmfkSgBJGOew144uj1dUch+2NTgtFOLvXZA5WICs7sXwOwKzUdH2QKSwHitJOr0+q6ItsLpDwxAkBXzvDK+/CCmIZjfMkqWsxN3nf/ZHCtQm5/2Jsem94/M+mPYHGLgltDMGKEfTEjbrPtqrFKh8ATzCBqKUwncybZAkEAmVNW1dftWWoriZZXXMvfFkTDgYvRmytoVEThhnd0J/AOhZiUAs9+kHfGKivlTE209AY6Bw8aRzuTCziSwQhhBQ==-----END RSA PRIVATE KEY-----`)// 解密加密过的字符串let decrypted = jse.decrypt(encrypted)// 打印结果console.log(decrypted) |
相关文章推荐
- 用javascript与java进行RSA加密与解密
- C# javascript 采用 RSA 加密解密
- 用javascript与java进行RSA加密与解密
- JavaScript (Node)对3DES,RSA加解密的一些实践
- 用javascript与java进行RSA加密与解密
- 使用RSA非对称加密完成JavaScript前端分段加密和java后端分段解密
- RSA使用javascript加密JAVA解密
- JavaScript RSA 超长字符加解密
- 兼容javascript和C#的RSA加密解密算法,对web提交的数据进行加密传输
- 用javascript与java进行RSA加密与解密
- php、javascript使用rsa进行加密/解密
- RSA不对称加密,公钥加密私钥解密,私钥加密公钥解密
- 什么是RSA加密算法?RSA加解密算法破解-Alasend
- 用HTML和JavaScript写的RSA加密小工具
- 新浪微博登录,QQ登录网页javascript脚本实现RSA加密的原理
- Java前端Rsa公钥加密,后端Rsa私钥解密(支持字符和中文)
- php rsa加密解密实例
- iOS使用RSA进行加解密
- js java 密码的rsa加密解密配合
- android、ios与服务器端php使用rsa加密解密通讯