代码拉取完成,页面将自动刷新
基于 jsencrypt 扩展的 RSA 非对称加密算法库
当前库基于一个 uni-app 项目开发,这样比较方便调试。
- src/jsencrypt.js 开发调试用的 jsencrypt-plus 代码
- index.js 压缩后用于发布的 jsencrypt-plus 代码
为方便前后端协作调试,简单学习了一下其他语言的相关知识。
按照『前端公钥加密后端私钥解密』的方案,在本地测试通过后,精简出示例代码,以供参考。
$ npm install jsencrypt-plus
import JSEncrypt from 'jsencrypt-plus';
var PUBLIC_KEY = `-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtN
FOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76
xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4
gwQco1KRMDSmXSMkDwIDAQAB
-----END PUBLIC KEY-----`;
var PRIVATE_KEY = `-----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-----`;
var data = {
service: 'api',
path: 'register',
version: '1.0.0',
username: 'xiaoming',
password: '123456',
email: 'xiaoming@email.com',
code: 'ABCD',
phone: '1234567890123'
};
data = JSON.stringify(data);
var encryptContext = new JSEncrypt();
encryptContext.setPublicKey(PUBLIC_KEY);
var encryptedData = encryptContext.encryptLong(data);
console.log('加密后的结果:', encryptedData);
var decryptContext = new JSEncrypt();
decryptContext.setPrivateKey(PRIVATE_KEY);
var decryptedData = decryptContext.decryptLong(encryptedData);
console.log('解密后的结果:', decryptedData);
没有勾选是尚未测试到的平台,欢迎各位同学进行补充。
执行以下命令后,即可在浏览器中体验。
$ npm run serve
方法一:
直接点击 https://developers.weixin.qq.com/s/xWng0Pmw76kN 打开代码片段。
方法二:
打开微信开发者工具,选择“代码片段”点击右下角的“导入”,填写该分享链接即可。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。