vue使用crypto-js对数据进行加解密

12 篇文章 0 订阅

vue使用crypto-js对数据进行加解密

1, 创建DES加密和解密方法

// 导入
import CryptoJS from 'crypto-js'

/**
* DES加密函数
* data: 需要加密的数据
* key: 加密的key
* */
export function encrypt(data, key = '123456') {
    // 将密钥转换为UTF-8编码的字节数组
    key = CryptoJS.enc.Utf8.parse(key);

    // 使用DES算法对数据进行加密
    var encrypted = CryptoJS.DES.encrypt(data, key, {
        iv: '', // 初始化向量为空
        mode: CryptoJS.mode.ECB, // 使用ECB模式
        padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充方式
    });
    return encrypted.toString(); // 返回加密后的字符串
}

/**
* DES解密函数
* content: 需要解密的数据
* key: 解密用的key
*/
export function decrypt(content, key = '123456') {
    // 将密钥转换为UTF-8编码的字节数组
    key = CryptoJS.enc.Utf8.parse(key);

    // 使用DES算法对内容进行解密
    // 去除换行符
    var bytes = CryptoJS.DES.decrypt(content.replace(/(\r\n|\n|\r)/gm, ""), key, {
        iv: '', // 初始化向量为空
        mode: CryptoJS.mode.ECB, // 使用ECB模式
        padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充方式
    });
    
    // 将解密后的字节数组转换为UTF-8编码的字符串,并返回
    var decryptResult = bytes.toString(CryptoJS.enc.Utf8);
    return decryptResult.toString();
}`

2, 在页面中使用
```java
imoport {encrypt, decrypt} from '@/uitls/index.js'
export script{
	data(){
		return {
			list: [
				{
					label: '需要加密的数据',
					key: 'test1',
					password: '123456'
				}
			]
		}
	},
	methods: {
		// 循环list加密
		loopEncryption(){
			this.list.forEach(item=>{
				item.password = encrypt(item.password, item.key)
			})
		},

		// 循环list解密
		loopDecrypt(){
			this.list.forEach(item=>{
				item.password = decrypt(item.password, item.key)
			})
		}
	}
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值