前端 js sm2实现加密

luquinn 2024-08-27 08:03:01 阅读 62

vue3

1. 安装 SM2 加密

首先,你需要安装适合的 SM2 加密库。在前面的讨论中提到了 <code>js-sm2 这个 JavaScript 实现的 SM2 加密算法库,你可以使用 npm 或者 yarn 进行安装

npm install sm-crypto # 或者 yarn add sm-crypto或者pnpm install sm-crypto

2. 引入 SM2 库并使用

在 Vue 3 的项目中,一般来说你会在需要加密的组件或者文件中引入 SM2 库,并使用其提供的加密、解密等功能。以下是一个简单的示例:

// 在需要加密的组件或者文件中引入

import smcrypto from 'sm-crypto'

const signIn = async () => {

const userlogin = {

username: formData.username,

password: '04' + smcrypto.sm2.doEncrypt(formData.password, publicKey.value),

code: code.value,

captcha: formData.captcha,

publicKey: publicKey.value

}

loginApi(userlogin)

.then(async (res) => {

...})

}

这里是直接使用加密,也可以封装成函数

、、、、、、、、、、

vue2

安装 sm-crypto

你可以通过 npm 安装 sm-crypto

npm install sm-crypto --save

封装 utils

'@/utils/smcrypto.js'

// utils.js

import smcrypto from 'sm-crypto';

// SM2 加密

export function encrypt (plaintext, publicKey) {

try {

const cipherMode = 1; // 1 - C1C3C2,0 - C1C2C3

const cipherText = smcrypto.sm2.doEncrypt(plaintext, publicKey, cipherMode);

return cipherText;

} catch (error) {

console.error('SM2 encryption error:', error);

return null;

}

}

在 Vue 组件中使用

在你的 Vue 组件中引入 smcrypto.js 并使用 encrypt方法:

import { encrypt } from '@/utils/smcrypto.js';

//登录请求参数

let data = {

password: this.param.password,

username: this.param.username,

captchaCode: this.param.captchaCode,

captchaId: this.param.captchaId,

rsaToken: this.param.rsaToken,

// authCode: this.param.authCode,

checked: this.param.checked

};

data.password = encrypt(this.param.password, this.rsaKey);

//发起登录请求

//...



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。