uni-app端rsa加密

本文介绍了如何在前端使用wxmp-rsanpm包进行RSA加密和解密操作,包括下载依赖、创建rsa文件并引入模块,以及提供加密和解密函数的示例。

一、前端rsa加解密工具

下载npm依赖wxmp-rsa

二、下边是操作

1、下载依赖wxmp-rsa

npm i wxmp-rsa -S

 2、新建rsa文件引入模块

3、rsa.js写以下代码(下边的公钥、私钥是不能用的)

import WxmpRsa from 'wxmp-rsa'
//
//公钥和私钥换自己的
// 定义公钥
const publicKey = `
  -----BEGIN PUBLIC KEY-----
  MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCANvSu1G8w7mm8OXbMzjZ5YgzLxH2/87uH+PirHBF08rmXf0L5cBQblqCs9TJiId0fdG0QDm7Oh383DlaVwmDRwNMJ8yN/iud57fBgpQGBnSgEmz/KjhO4k0fndAdEFkmgo6Z8HsRJrgwIDAQAB
  -----END PUBLIC KEY-----
`
// 定义私钥
const privateKey = `
  -----BEGIN RSA PRIVATE KEY-----
  MIICWgIBAAKBgFnWSUwsmGawhMJ30z6y5li2jcf1m7rPMZcwZOS3To8bk3OBaMGh
  VEc1F8GtJBbc1rn/HCLNL9zrCy21EefJON8tRFcYHnpseZSzh+349lIhS+MFw9x4
  JUddwSPDyxwha929cKzMuVoftu3CJ+kqDBVvxLk7iDBzUMqW3Kgehk2TAgMBAAEC
  gYBRChPeyk/EOWtkdJ0JYLmo7AkBJpRZb
  wZj5D8Jqu3vQ8uGgPr9DsYKinkgQ6M0bv/4uXwWXf+Rmv7zpteSv5UTbjfp+uzKk
  YO/6QWj+InhZto3xAkAOA0i702dLHm5elLWvht7UEYIDEW1+rYGdbthmJBvT9sZh
  VKL954Y9hDzBWepjYsBiJnmIkgeladPnU5025/G/
  -----END RSA PRIVATE KEY-----
`

//加密
function getRsaCode(str) {
	const rsa = new WxmpRsa()
	rsa.setPublicKey(publicKey);
	const data = rsa.encryptLong(str)
	return data
}
//解密
function getRsaDeCode(str) {
	const rsa = new WxmpRsa()
	rsa.setPrivateKey(privateKey);
	const data = rsa.decryptLong(str)
	return data
}

export default {
	getRsaCode,
	getRsaDeCode,
};

4、页面使用

import rsa from '@/utils/rsa.js';


let a=rsa.getRsaCode(JSON.stringify('123456'))//注意要转为字符串
//a就是加密后的一串密文
//解密使用类似

uni-app可借助js_sdk加密工具包实现非对称加密,该工具包的rsa加密模块支持用户名和密码的加密和解密,保障数据在传输过程中的安全性,能帮助开发者在uni-app应用中实现加密机制,保护用户数据安全[^1]。 以下是一个uni-app实现小程序rsa加密(非对称加密)的示例代码,在main.js文件中的实现如下: ```javascript //引入js文件 import security_http_config from './common/security.js' //封装的接口 Vue.prototype.proims = (data, url, contentType) => { //重要的地方 let currentKey = security_http_config.createKey(); const token_u = uni.getStorageSync('token'); data.token = token_u; return new Promise((resolve, u) => { uni.request({ url: httpurl + url, //重要的地方 data: security_http_config.transform('post', data, currentKey), method: 'post', header: { token: uni.getStorageSync('token'), //重要的地方 'Content-Type': contentType || "application/json", ff8d82a3d6654309b17c97289c9c78fc: 'headerEncoding:base64;contentEncoding:base64', ff974421535f45508a8931b6432ffbf5: security_http_config.rsa(currentKey, uni.getStorageSync('key')) }, dataType: 'json', success: function(res) { if (res.data.code == 200) { } resolve(res) }, fail: function(res) { uni.showToast({ title: '请稍后重试', icon: 'none', duration: 1200 }); } }) }) }; ``` 这段代码展示了在uni-app中如何使用非对称加密进行接口请求,其中`security_http_config.createKey()`用于创建密钥,`security_http_config.transform()`用于对数据进行处理,`security_http_config.rsa()`用于进行rsa加密操作[^2]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值