前端在登录时如何将用户密码加密
之前用到的是md5,但是最近发现有个新的加密方法AES,和后台沟通后,便拿来试了试。
首先在项目文件夹中创建AES.js,js代码如下:
// npm i crypto-js --save下载先,然后引包import CryptoJS from "crypto-js";export default {//随机生成指定数量的16进制keygeneratekey(num) {let library ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let key = "";for (var i = 0; i < num; i++) {let randomPoz = Math.floor(Math.random() * library.length);key += library.substring(randomPoz, randomPoz + 1);}return key;},//加密encrypt(word, keyStr) {keyStr = keyStr ? keyStr : "123456{saltZX}.."; //判断是否存在key,不存在就用定义好的keyvar key = CryptoJS.enc.Utf8.parse(keyStr);var srcs = CryptoJS.enc.Utf8.parse(word);var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});return encrypted.toString();},//解密decrypt(word, keyStr) {keyStr = keyStr ? keyStr : "abcdsxyzhkj12345";var key = CryptoJS.enc.Utf8.parse(keyStr);var decrypt = CryptoJS.AES.decrypt(word, key, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});return CryptoJS.enc.Utf8.stringify(decrypt).toString();}
};
然后在需要的页面引入AES.js文件:
import AES from "../../src/uitls/AES";
我这里是在登录时用到的,具体操作如下:
// 用AES给密码加密const keys = AES.generatekey(16);//如果是对象/数组的话,需要先JSON.stringify转换成字符串,第二个值是加密的方式keyconst encrypts = AES.encrypt(that.loginForm.password,'123456{saltZX}..');let params = {username: that.loginForm.username,password: encrypts,};
// 到这里在用户提交登录的时候把params提交过去就好啦!
我们再来看看具体效果:
{
- password: "yktfmgc8jZ2OjmjHNvp75g=="
- username: "admin"
}
至此,搞定啦!!!
前端在登录时如何将用户密码加密相关推荐
- 登录时本地保存账号密码及关闭ARC的方法
对于登录时保存用户名和密码,苹果官方使用的是KeychainItemWrapper,但使用时有些不便,如在引入KeychainItemWrapper的类中都要关闭arc,不能自定义key,必须使用该类 ...
- Edusoho修改注册的用户密码加密机制规则
一.简介 1.修改生成$salt的机制规则. 2.修改生成$password的机制规则. 二.edusoho的默认用户密码加密机制规则 1.系统默认生成$salt的方式: edusoho\src\Bi ...
- 用户密码加密存储十问十答,一文说透密码安全存储
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 | 程序员赵鑫 来源 | cnblogs.com/xinzh ...
- [转]常见的用户密码加密方式以及破解方法
[作者]张辉,就职于携程技术中心信息安全部,负责安全产品的设计与研发. 作为互联网公司的信息安全从业人员经常要处理撞库扫号事件,产生撞库扫号的根本原因是一些企业发生了信息泄露事件,且这些泄露数据未加密 ...
- 新增用户-用户密码加密-无解密
新增用户-用户密码加密 加密方式 需求 做法 加密方式 加密方式有多种,如1加密后可解密得到原文得.2加密后无解密方式,只能通过加密密文比对得.本文采取得就是第2种无解密方式加密 需求 springb ...
- 常见的用户密码加密及破解方法
一.用户密码加密 用户密码保存到数据库时,常见的加密方式有哪些,我们该采用什么方式来保护用户的密码呢?以下几种方式是常见的密码保存方式: ① 直接明文保存,比如用户设置的密码是"123456 ...
- php+$2y$10,PHP 用户密码加密函数password_hash
PHP 用户密码加密函数password_hash PHP 用户密码加密函数password_hash 传统的用户名和密码都采用加盐的方式存储加密信息,盐值也需要存储. 自PHP5.5.0之后,新增加 ...
- C#中使用MD5对用户密码加密与解密
C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式.本文总结了通用的算法并结合了自己的一点小经验,分享给大家. 一.使用16位.32位.64位MD5方法对用户名加密 1 ...
- 使用MD5对用户密码加密与解密
MD5简介 : MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2.MD3和MD4发展 ...
最新文章
- 彻底理解HashMap及LinkedHashMap
- 正则表达式的常用方法和属性
- C# 生成 MongoDB 中的 ObjectId
- Asp.Net Core 中IdentityServer4 授权中心之应用实战
- asa 防火墙基本配置管理
- [C#] 谈谈异步编程async await
- poj 1655 Balancing Act(求树的重心)
- C编程语言中整型变量在内存中的存储形式介绍
- VC2005中将Picture控件显示图片保存为BMP,JPG等格式
- mellanox驱动安装
- ColorPix 简单好用的屏幕取色小工具
- 2021费控报销领域最具商业合作价值企业盘点
- 详解数字音频接口DAI
- Java的三大特性之封装、继承、多态-----最简理解
- 从视网膜到视皮层——视觉系统知多少
- Linux4.19-获取IDT地址
- margin-left是什么意思
- 计算机启动快到桌面时屏幕黑,电脑开机后桌面黑屏怎么回事
- bak文件转oracle文件,如何在Oracle 11g中恢复.bak文件(How to restore .bak file in oracle 11g)...
- Catia启动界面图片修改
热门文章
- 模仿 Github设计一个博客网站的 API
- git commit message——git提交日志规范备忘
- linux挖矿的清理工具,Linux挖矿病毒的清除与分析
- 50位中外AI领袖论剑AI World,世界人工智能大会10大亮点全回顾
- 2022最新SCI影响因子TOP100榜单
- 竞价推广(SEM)是什么
- mysql查询周数_MySQL如何获取一个指定日期所对应本年度的周数(WEEK函数)呢?
- Codeforces 1359 C. Mixing Water (二分 /数学)
- linux timerfd系列函数学习笔记2 获取超时次数
- 河北滹沱河流域上演喜鹊戏金雕