引言

前端开发时,有时候不可避免会使用到加密,本人在这次的小程序项目中就使用到了 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 方法的参数一定要是字符串,不能是其他类型!!!

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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐