当前位置:网站首页>密码加密md5和加盐处理
密码加密md5和加盐处理
2022-06-28 02:48:00 【weixin_47164846】
关于密码加密处理md5和加盐处理
md5 加密:
用户注册时将加密后的密码发送给后端存储当登陆的时候,
再将加密后的密码和数据库中加密的密码相匹配。
此加密无须解密
一.md5的在vue中的用法:
1.安装。
npm install js-md5 -D
2.使用。
(1)项目中引入md5模块。
import md5 from “js-md5”
(2)在main.js里面将md5转换为vue原型
import md5 from "js-md5"
Vue.prototype.$md5=md5
3.示例
<input type="number" v-model="value">
console.log("加密密码:"+ this.$md5(this.value))
二.md5的在react中的用法:
第一步:
npm 安装js-md5,文件根目录下安装,指令如下
npm install --save js-md5 //安装到生产环境
第二步:
引入 js-md5
在项目入口文件 index.js 里 引入 js-md5
import md5 from 'js-md5'
挂载到react的原型上
React.Component.prototype.$md5 = md5
第三步:
去组件中使用
import React, {
Component } from 'react'
class friend extends Component {
componentWillMount () {
let str = '123456'
let data = this.$md5(str)
console.log(data) // e10adc3949ba59abbe56e057f20f883e
}
render() {
return (
<div className="friend"> friend朋友</div>
)}
}
export default friend
三加盐处理
直接对重要数据进行MD5处理后,反向解密确实难度很大,但还是可以找出破绽的,如果名为李自成的用户可以查看数据库,那么他可以观察到自己的密码和别人的密码加密后的结果都是一样,那么,别人用的和自己就是同一个密码,这样,就可以利用别人的身份登录了。那么我们以前的加密方法是否对这种行为失效了呢?其实只要稍微混淆一下就能防范住了,这在加密术语中称为“加盐”。具体来说就是在原有材料(用户自定义密码)中加入其它成分(一般是用户自有且不变的因素),以此来增加系统复杂度。当这种盐和用户密码相结合后,再通过摘要处理,就能得到隐蔽性更强的摘要值。下面请见代码:
// 对密码进行加盐后加密,加密后再通过Hibernate往数据库里存
String changedPswd = DigestUtils.md5Hex(name + pswd);
就是这样简单,上面代码中盐就是用户名,可以的话还可以用用户注册时的邮件,注册时间等非空信息(如果是空信息这个加盐处理会失效)。他们的实际登录密码都是123456,但光看用户记录是完全看不出来的。这下别有用心的人打开数据库看到的密码都完全不一样,他以前的手段就失效了。
边栏推荐
猜你喜欢

Extensible database (I)

Resource management, high availability and automation (medium)

Custom controls under WPF and adaption of controls in Grid

Online DDL implementation mechanism in InnoDB of database Series

MySQL configuration of database Series F5 load balancing

「运维有小邓」监控文件及文件夹变更

Relative path writing of files

Execution plan in MySQL of database Series

Object类,以及__new__,__init__,__setattr__,__dict__

idea自动生成代码
随机推荐
Object类,以及__new__,__init__,__setattr__,__dict__
xml&nbsp;文件的读写
Idea auto generate code
STM32 peripheral SDIO and SD card configuration
What are the technologies to be mastered in the test? Database design for software testing
Floating point and complex type of go data type (4)
Resource management, high availability and automation (medium)
Execution plan in MySQL of database Series
可扩展数据库(上)
Lost connection repair: make "hide and seek" nowhere to hide
Is Guotai Junan Securities reliable? Is it safe to open a securities account?
Summary of SQL basic syntax for C #
Li Kou daily question - day 29 -219 Duplicate Element II exists
TypeError:&nbsp;&#039;module&amp;#03…
启牛开的证券账户是安全的吗?如何开账户呢
Necessary software tools in embedded software development
Redis cluster setup [simple]
数据库乱码问题
GAMES104 作业2-ColorGrading
Introduction to kubernetes resource object and common commands