MD5加密解密简介和应用

MD5原理和应用

一:什么是md5

MD5信息摘要算法(MD5 Message-Digest Algorithm),一种 被广泛使用的密码散列函数,可以产生一个128位(16字节)的散列值,用于确保信息传输的一致。MD5 是一种不可逆的加密算法。MD5是一种常用的加密解密的算法,但是在1996年被证明该算法 存在弱点,在2004年证实该算法无法防止碰撞(概论很低),因此不适用于 安全认证。在一些安全系数不需要很高的应用中还是可以应用的。

二:MD5在前端项目中的应用

1)加密
最近在写一个react应用,其中用到了md5原理,下面以这个项目为例子来演示一下MD5在前端项目中的应用。

首先:在项目中加载MD5
npm install --save blueimp-md5

然后在后台文件中引入MD5模块
const md5=require('blueimp-md5');//这个引入的MD5是一个函数,
可以将需要加密的数据作为参数,然后进行加密。

例子:

/实现mongoose连接MongoDB数据库 并使用md5实现对数据的加密


//引入md5加密模块
const md5=require('blueimp-md5');
//引入mongoose
const mongoose=require('mongoose');
//指定数据库的具体路径URL
mongoose.connect('mongodb://localhost:27017/gzhipin_test2')
//获取连接对象
const cont=mongoose.connection;
//监听数据库是否连接成功
cont.on('connected',function(){
    console.log('数据库连接成功')
})


//数据库连接成功后,就要进行增删改差的工作

//首先创建一个数据库表字段的模式,插入的数据就按照这个模板进行插入
const userSchma=mongoose.Schema({
    username:{type:String ,require:true},
    password:{type:String,require:true},
    type:{type:String,require:true}    //类型'laoban'/'dashen'
})

//将模型与数据库中的集合连接起来,构成对应关系
const UserModel=mongoose.model('user',userSchma);

//实现增加数据的功能,并保存在数据库中
function dbsave(){
    const user={
        username:'jack',
        password:md5('456'),
        type:'laoban'
    }
    //将构建的对象(记录)存入表中
    const userModel=new UserModel(user);
    userModel.save(function(err,doc){
        console.log(err,doc);
    })
}

dbsave();

结果:

null {
  _id: 5fd4cba2c8a85046584c3f4b,
  username: 'jack',
  password: '250cf8b51c773f3f8dc8b4be867a9a02',
  type: 'laoban',
  __v: 0
}

从上面两个图中可以看出password已经被加密保存在数据库了。

2)解密
使用MD5解密工具实现解密pmd5

加密解密可参考文献:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值