uniapp 小程序实现 RSA 加密

uniapp 小程序实现 RSA 加密

  • 引言
  • 创建并使用 jsencrypt 进行 RSA 加密
  • 创建 rsa 文件
  • 在需要的地方引用
  • 注意

引言

前端开发时,有时候不可避免会使用到加密,本人在这次的小程序项目中就使用到了 RSA 这种非对称性加密,因此对这次的使用进行了记录

创建并使用 jsencrypt 进行 RSA 加密

uniapp 小程序中 npm 下载 jsencrypt 或者引用包,会因为小程序和h5由于元素的不同出现报错,因此需要更改 jsencrypt 文件,可点击下面链接进行 jsencrypt 文件下载并使用

下载链接: https://download.csdn.net/download/m0_64344940/86812930

创建 rsa 文件

// rsa.js
import Jsencrypt from '@/utils/jsencrypt.js'; // 此处是上面的文件引用

let publicKey =
	'-----BEGIN PUBLIC KEY-----' +  // 必须添加,切记
	'' +  // 此处使用后端给的公钥
	'-----END PUBLIC KEY-----'   // 必须添加,切记
	
// msg 类型为 string 字符串,不能搞错类型,不然生成之后的内容后端会解密失败
export const rsaEncrypt = (msg) => {
	const JsRsa = new Jsencrypt()
	JsRsa.setPublicKey(publicKey)
	return JsRsa.encrypt(msg)
}

在需要的地方引用

本项目是在接口的请求头使用的

import { rsaEncrypt } from '@/utils/rsa.js'

export const request = (option) => {
	// 事先定义好,可以防止时间差导致解密出来的时间戳和传值的时间戳不一样
	const times = new Date().getTime()
	
    ...
	
	header["sign"] = rsaEncrypt(times.toString())
	header["timestamp"] = times
}

注意

rsaEncrypt 方法的参数一定要是字符串,不能是其他类型!!!

欢迎各位大神指教,如有错误,麻烦各位大神指出,谢谢

你可能感兴趣的:(uniapp,uni-app,小程序)