VUE 加密工具

本文介绍如何在Vue项目中使用Crypto-JS进行AES和MD5加密解密操作,包括安装Crypto-JS、创建加密文件并提供具体代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用方法

  1. 先在vue项目中安装crypto-js
npm install crypto-js --save-dev
  1. 新建digest.js加密文件,代码如下
import CryptoJS from 'crypto-js';
/* 加密工具类 */
export const AES = {
  encrypt(data, secretKey) {
    let utf8Data = CryptoJS.enc.Utf8.parse(data);
    let utf8SecretKey  = CryptoJS.enc.Utf8.parse(secretKey);
    var encrypted = CryptoJS.AES.encrypt(utf8Data, utf8SecretKey, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
    return encrypted.toString();
  },
  decrypt(data, secretKey) {
    var utf8SecretKey  = CryptoJS.enc.Utf8.parse(secretKey);
    var decrypt = CryptoJS.AES.decrypt(data, utf8SecretKey, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
    return CryptoJS.enc.Utf8.stringify(decrypt).toString();
  }
}

export const MD5 = {
   encrypt(data) {
     return CryptoJS.MD5(data).toString();/* toString后会变成Hex 32位字符串*/
   }
}

export default {
  MD5,
  AES
}

  1. 使用方法
import digest from '@/utils/digest'
let testDigestMd5 = () => {
   let md5EncryptData = digest.MD5.encrypt("123456");
    console.info(`md5EncryptData : ${md5EncryptData}`);
    let aesEncryptData = digest.AES.encrypt("123456",'12345678')
    console.info(`aesEncryptData : ${aesEncryptData}`);
    let aesDecryptData = digest.AES.decrypt(aesEncryptData,'12345678');
    console.info(`aesDecryptData : ${aesDecryptData}`);
}

输出:
md5EncryptData : e10adc3949ba59abbe56e057f20f883e
aesEncryptData : 7FP0388LUA3VVswkk97NJA==
aesDecryptData : 123456

### Vue 项目中加密 CSS 类名的技术与工具Vue 项目中实现 CSS 类名加密可以通过多种方式完成,这不仅有助于提高项目的安全性,还能优化构建后的资源加载效率。以下是几种常见的方法和技术: #### 使用 PostCSS 插件进行类名混淆 PostCSS 是一种强大的工具链,可以用来处理和转换 CSS 文件。通过安装特定插件如 `postcss-obfuscate` 或者自定义脚本,可以在编译阶段自动替换所有的 CSS 类名为随机字符串。 ```bash npm install postcss-obfuscate --save-dev ``` 接着,在项目的根目录下创建或编辑现有的 `postcss.config.js` 配置文件来应用此插件: ```javascript module.exports = { plugins: [ require('postcss-obfuscate')() ] }; ``` 这种方法会在打包过程中修改所有涉及到的 HTML 和 JavaScript 中对应的类名称,确保前后端一致[^1]。 #### 利用 Webpack 的 MiniCssExtractPlugin 提取并重命名 对于基于 Webpack 构建系统的 Vue 应用程序来说,还可以借助于 `MiniCssExtractPlugin` 来提取独立的 CSS 文件,并结合其他插件(比如 PurgeCSS)去除未使用的样式表项的同时对剩余的选择器执行哈希化操作。 首先需要安装必要的依赖包: ```bash npm install mini-css-extract-plugin purgecss-webpack-plugin --save-dev ``` 然后更新 webpack 配置以启用这些功能: ```javascript const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const PurgecssWebpackPlugin = require('purgecss-webpack-plugin'); // ... plugins: [ new MiniCssExtractPlugin({ filename: '[name].[contenthash].css', }), new PurgecssWebpackPlugin({ paths: glob.sync(`${PATHS.src}/**/*`, { nodir: true }) }) ], module: { rules: [{ test: /\.css$/, use: [MiniCssExtractPlugin.loader, 'css-loader'] }] } ``` 上述配置会为每一个输出的 CSS 文件生成唯一的 hash 值作为其文件名的一部分,并且移除无用的选择器;同时也可以考虑进一步集成类似 Babel 这样的工具来进行更复杂的 AST 转换工作,从而达到更好的压缩效果[^2]。 #### 结合 CSS Modules 实现局部作用域内的类名加密 如果希望仅针对组件内部定义的样式实施保护措施,则推荐采用 **CSS Modules** 方案。这种方式允许开发者编写常规 SCSS/SASS/LESS 等预处理器语法而无需担心全局污染问题——因为最终渲染出来的标记将会被映射成独一无二的名字空间下的标识符。 要开启这项特性只需简单调整 vue-cli-service 执行命令时附加参数 `-m` 即可: ```json { "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build --modern" } } ``` 改为: ```json { "scripts": { "serve": "vue-cli-service serve -m", "build": "vue-cli-service build --modern -m" } } ``` 这样做的好处在于既保持了原有开发体验又增强了安全性和性能表现[^3]。 综上所述,以上三种方案各有优劣,可以根据实际应用场景灵活选用最合适的策略来满足需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值