在搞前端开发的时候,页面上有很多的地方是需要用户输入信息的,但是有些信息又很敏感,比如客户的姓名、电话号码、身份证号码、银行卡号及密码等等这些,如果没有进行加密处理,很容易被别人截取到,项目中应用到cryptoJS的AES模式加密,然后自己就抽空研究了下,下面是学习的过程

参考文章:

(一)通过cnpm或者npm引入cryptoJS

npm install crypto-js --save-dev或cnpm install crypto-js --save-dev

(二)在src文件夹下创建一个叫tools的文件夹,然后在tools下创建一个js文件,这里我直接叫jiami.js了(简单粗暴点),目录结构如下:

(三)实现AES加密解密方法

①先引入cryptoJS

import cryptoJs from 'crypto-js'

②添加加密解密方法并将它们暴露出来,方便引入,代码如下:

'use strict'import cryptoJs from'crypto-js'let keyOne= '313233343536373a'exportdefault{//加密函數

jiami (word) {

console.log(word)

console.log('秘钥长度为:', keyOne.length)

let key=cryptoJs.enc.Hex.parse(keyOne)

let enc= ''

if (typeof word === 'string') {

enc=cryptoJs.AES.encrypt(word, key, {//iv: iv

mode: cryptoJs.mode.ECB,

padding: cryptoJs.pad.Pkcs7

})

}else if (typeof word === 'object') {

let data=JSON.stringify(word)

enc=cryptoJs.AES.encrypt(data, key, {//iv: iv

mode: cryptoJs.mode.ECB,

padding: cryptoJs.pad.Pkcs7

})

}

let encResult=enc.ciphertext.toString()returnencResult

},//解密函數

jiemi (word) {

console.log('传入的密文:', word)

let key=cryptoJs.enc.Hex.parse(keyOne)

let dec=cryptoJs.AES.decrypt(cryptoJs.format.Hex.parse(word), key, {//vi: vi

mode: cryptoJs.mode.ECB,

padding: cryptoJs.pad.Pkcs7

})

let decData=cryptoJs.enc.Utf8.stringify(dec)returndecData

}

}

(四)引入加密解密方法

在需要的组件中,引入加密文件即可,这里我是通过别名配置的方法引入进来的,别名配置在另一篇随笔(vue aliasConfig(模块别名配置))中有说明,引入如下:

import jm from 'jm'

然后通过jm.jiami和jm.jiemi即可调用jiami.js中的加密和解密方法了,下面放一张效果图:

注意的地方有几点:(1)加密的秘钥的长度必须是8的整数倍,如果不是,解码的结果为空,这里我还没理解,后面再慢慢学了;(2)我们加密的可能会是字符串或者一个对象,所以加密时得做判断先,方法已经写好了,注意下就行了;(3)实际开发肯定是前后端一起的,所以前后端统一秘钥进行加解密即可

总结:这是我根据项目中鹏哥写好的应用和网上参考了很多方法后的一种实现方法,看了好多大佬的文章,发现还有许多的加密方式,等后续有空了再慢慢多学习补充下了...

cryptojs vue 使用_vue 中引入cryptoJS相关推荐

  1. 怎样在vue单页面中引入其他组件

    场景 在一个vue的单页面,假如是home.vue中要引入其他组件的内容. 页面结构如下: 实现 首先在components下新建组件Today_recommend.vue组件 <templat ...

  2. [vue] vue在组件中引入插件的方法有哪些?

    [vue] vue在组件中引入插件的方法有哪些? 插件通常用来为 Vue 添加全局功能.插件的功能范围没有严格的限制--一般有下面几种:添加全局方法或者属性.如: vue-custom-element ...

  3. Vue单文件中引入背景图片时,四周有空白的问题

    Vue单文件中引入背景图片时,四周有空白的问题 问题背景 初始引入背景图 更新后的背景图设置 问题背景 近期公司有个管理系统前后端分离,但是前端人员不够,只能我们后端来凑,而在前端的开发过程中总是遇到 ...

  4. cryptojs vue 使用_VueJs里利用CryptoJs实现加密及解密的方法示例

    第一步 安装 安装crypto-js 第二步 创建 在js文件目录下创建一个js文件secret /** * 对页面上输入的密码进行加密传输给后台进行验证,对返回的数据进行解密,在页面展示 */ le ...

  5. cryptojs vue 使用_VueJs里利用CryptoJs实现加密及解密

    第一步 安装 安装crypto-js 第二步 创建 在js文件目录下创建一个js文件secret /** * 对页面上输入的密码进行加密传输给后台进行验证,对返回的数据进行解密,在页面展示 */ le ...

  6. vue main.js中引入js_web前端的同学不容错过,大厂Vue最佳实践总结,提高竞争力...

    随着这几年前端技术的快速发展,Vue框架在国内普及率极高,人人都会用.那么,如何才能写得比别人优雅?比别人漂亮? 鉴于一线互联网大厂在前沿技术领域的持续研究和大规模投入,直接向他们取经,是最便捷也是最 ...

  7. vue main.js中引入js_手把手教你深入Vue3.0(Vue-cli4)项目打包性能优化实践

    记录了自己的博客在禁用缓存的情况下,从八九秒加载时间到最终985ms的优化实践,开启缓存的情况下能达到138ms的访问速度 本人的个人博客采用的是Vue-cli4.1.2 + typescript构建 ...

  8. 在 Nuxt.js 和 Vue.js 项目中引入第三方字体或艺术字

    一.需求分析 在我们写前端页面的时候,大部分时候是不需要用到第三方字体的,但如果是面向C端的页面,比如宣传页,就有可能会引入第三方字体,主要还是看UI设计师咋想了,此时我们可以通过让UI将特殊字体切成 ...

  9. vue 引入json地图_vue中引入地图的js文件,显示echarts is not loaded

    <script type="text/javascript"> var vue = new Vue({ el:'#app', data:{ function () { ...

  10. vue里面_Vue中如何使用自定义插件(plugin)

    Vue中如何使用自定义插件(plugin) 1.在根目录src下创建一个libs文件夹,在libs文件夹下面创建一个myPlugins文件夹,用来存放我们的自定义插件,在myPlugins文件夹下面再 ...

最新文章

  1. 610D - Vika and Segments(线段树+扫描线+离散化)
  2. Lesson 4.34.4 梯度下降(Gradient Descent)基本原理与手动实现随机梯度下降与小批量梯度下降
  3. 熟读《阿里巴巴java开发手册》(一、编程规约)
  4. information_schema.routines 学习
  5. mac m1下安装kubenetes的dashboard
  6. asp 中使用Ftp.exe 上传大文件
  7. 永冻土层matlab图片,北极圈都32℃了!千年永冻土层快“热化”了?
  8. 使用NoSQL实现实体服务–第2部分:合同优先
  9. 漂亮 动态效果 信息提示(jquery版)
  10. openresty 操作memcached例子
  11. cbc系统是指_制动EBD,CBC是什么意思?
  12. JavaScript面向对象:类、方法、属性
  13. 《Servlet和JSP学习指南》一2.5 小结
  14. paip.python错误解决19
  15. java ai寻路_AI自动寻路
  16. python拼多多领现金_拼多多天天领现金最后都是1分怎么办?
  17. 2020年计算机二级报名时间上半年,2020年上半年计算机二级报名时间是什么时候...
  18. Preparing: insert into user(uuid,username,gender,age,phone,address) values(?,?,?,?,?,?,?)
  19. h5 每页打印固定表头以及表尾 解决表头过长打印分页表头不固定问题
  20. 镜像制作dockerfile编写

热门文章

  1. 仓库管理系统java和mysql_基于Android的仓库管理系统APP设计与实现毕业论文+前后台(Java+Mysql)源码及数据库文件+前后台运行演示视频...
  2. MIT Place Pulse数据集及google街景图片爬取
  3. Win32/Conficker 蠕虫的病毒警报
  4. Conficker.AE病毒局域网扫描工具
  5. n-3000系列串口服务器,串口转网络,网络转串口
  6. MIPS单周期CPU设计——lw和sw指令的设计
  7. krc 编辑 linux,krc文件怎么打开?krc是什么文件?
  8. 邮箱发大文件服务器怎么删除,Exchange 2010如何删除系统默认邮箱数据库
  9. 计算机网络(第七版)部分课后习题含答案第一章 概述1-02 试简述分组交换的要点。分组交换最主要的特点就是采用存储转发技术。我们把要发送的整块数据称为一个报文。在发送报文之前,先把较长的报
  10. 按键精灵手机助手旋转验证码上传插件