目录
最终实现效果,RSA公钥加密成功:
一、导入依赖
yarn add jsencrypt
二、公钥加密
//敏感数据的公钥加密
export const publicKey: string =
`-----BEGIN PUBLIC KEY-----
yours...
-----END PUBLIC KEY-----`;
由于直接引用JSEncrypt到函数里,页面会报错:
Server Error ReferenceError: window is not defined
我们通过异步的方式可以解决该问题:
import {publicKey} from "@/config/auth";
//RSA公钥加密敏感数据
export async function encrypt(data: string): Promise<string | false> {
const JSEncrypt = (await import('jsencrypt')).default
const encryptor = new JSEncrypt()
encryptor.setPublicKey(publicKey) // 设置公钥
return encryptor.encrypt(data)
}
参考:next.js - NextJS project compilation fails with JSEncrypt - Stack Overflow
这样实现的RSA公钥加密内容,只有服务器的私钥才能解开,保证了数据的安全!
下一篇,讲如何通过SpringBoot私钥解密该敏感数据。