Node.js:使用blueimp-md5进行MD5加密
1. 概念
MD5(Message-Digest Algorithm)是计算机安全领域广泛使用的散列函数(又称哈希算法、摘要算法)。
主要用来确保消息的完整性和一致性。
常见的应用场景有:密码保护、下载文件校验等。
2. 应用场景
① 文件完整性校验
比如从网上下载一个软件,一般网站都会将软件的md5值附在网页上,用户下载完软件后,可对下载到本地的软件进行md5运算,然后跟网站上的md5值进行对比,确保下载的软件是完整的(或正确的)。
② 密码保护
将md5后的密码保存到数据库,而不是保存明文密码,避免拖库等事件发生后,明文密码外泄。
③ 防篡改
比如数字证书的防篡改,就用到了摘要算法。(当然还要结合数字签名等手段)
3. 密码保护
① 安全性
- 将明文密码保存到数据库是很不安全的,最起码也要进行md5后进行保存
- 比如用户密码是123456,md5加密后,得到结果:
e10adc3949ba59abbe56e057f20f883e
② 好处
- 防内部攻击
网站主人不知道用户的明文密码,避免网站主人拿着用户明文密码做坏事 - 防外部攻击
如果网站被黑客入侵,黑客也只能拿到md5加密后的密码,而不是用户的明文密码
4. 单纯对密码进行md5不安全
- 当攻击者知道算法是md5后,可以将实现准备好的常见明文密码的md5值来进行匹配暴力破解
- 密码加盐
在密码的特定位置插入特定字符串后,在对修改的字符串进行md5运算
注意:
① 同样的密码,当“盐”值不一样的时候,md5的值差异非常大
② 通过密码加盐,可以防止最初级的暴力破解,如果攻击者事先不知道“盐”值,破解的难度就会非常大 - 密码加盐增强:随机盐值
5. 使用blueimp-md5第三方类库 文档
- 安装
npm install blueimp-md5
- 引入
import md5 from 'blueimp-md5'
- 自定义盐值
const S_KEY = '@WaLk1314?.ItikE.Com.#';
- 加密
const user_pwd = md5(req.body.user_pwd + S_KEY) || '';
Node.js:使用blueimp-md5进行MD5加密相关推荐
- python aes padding_使用PKCS7Padding在python和Node.js之间进行AES加密
已解决 密码学Python 使用PKCS7Padding在python和Node.js之间进行AES加密10 我试图用Node.js中的pkcs7填充来解密消息没有成功. 此消息已加密并从Python ...
- java nodejs aes_Java与Node.js利用AES加密解密出相同结果的方法示例
前言 工作中遇到nodejs端通过aes加密,安卓客户端Java解密,同样nodejs也需要解密安卓客户端加密过来的内容,发现两个加密结果不一样,查询资料发现java端需要对密钥再MD5加密一遍,以下 ...
- js计算出来的文件md5值跟java计算出来的不一致
最近在项目中遇到了大文件分割上传问题,为了保证上传的文件的有效性需要确保分割的文件上传首先要成功,因此用到了md5加密,在js代码中上传文件之前将要上传的文件内容进行md5加密,然后作为其中一个参数传 ...
- SpringBoot+2次MD5登录密码加密+MyBatisPlus+Thymeleaf+Bootstrap简单实现登录功能,一文轻松搞定!
这里写目录标题 一.演示GIF 二.开发前期准备 1.数据库 2.依赖POM.XML 3.idea结构目录 三.后端 1.实体类 2.mapper接口 3.mapper.xml 4.Servicce接 ...
- JavaScript使用md5验证登录加密
直接上代码 1.HTML部分 <!DOCTYPE html> <html lang="en"> <head><meta charset=& ...
- ASP.Net中MD5和SHA1加密的几种方法
首先简单介绍一下MD5和SHA1: MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Scie ...
- Node.js和NoSQL开发比特币加密货币应用程序(下)
在使用Node.js和NoSQL开发比特币加密货币应用程序(上)中,我们创建了HD钱包,它可以为给定的种子生成无限量的密钥,每个密钥代表一个用户钱包.我们将根据主种子创建每个包含钱包的用户帐户.下面我 ...
- MD5和SHA加密实现
@Testpublic void TestMD5AndSHA() throws NoSuchAlgorithmException {String MD5=Md5("123456") ...
- C# MD5 32位加密 UTF-8编码
项目开发过程中需要用到MD5加密,最开始的使用使用加密方法: public static string GetMD5(string str) { byte[] ...
- 原创:MD5 32位加密软件
网站后台数据库切勿使用明文保存密码,否则一旦黑客拿下你的Webshell,后果不堪设想. 网站后台密码加密大多数采用的就是MD5算法加密. 今天给大家送一个本人用c#简单编写的MD5 32位加密程序, ...
最新文章
- linux 约等于符号,Mac OS X基础教程:特殊符号的快捷输入方式
- 进制在c语言中的作用,C语言中的进制是什么意思?
- 2021夏季每日一题 【week2 未完结】
- centos7.0安装php,centos7.3安装php7.0
- Dominant Character 思维,字符串,贪心
- swift3.0截取View生成图片 图片截取成新图片
- 【SQL Join】两个字段关联到同一个表,如何使用left join
- dedecms 添加,编辑文章时 文章标题有字数限制的解决办法。
- poj 3414 Pots(广搜BFS+路径输出)
- html文本框 控件,标签和文本框都用于显示文本
- oracle 分组 top10 sql,oracle sql 合龙 分组 聚合函数
- cmake linux 交叉编译,[CMake]CMake设置arm-linux-gcc交叉编译器
- chkconfig、mount、shutdown
- Java Scanner类nextLine和nextInt不能同用问题
- 域控服务器降级失败,降级域控制器时出错 - Windows Server | Microsoft Docs
- httpSession和Cookie
- Java游戏程序设计教程 第2章 游戏设计的基本流程
- 跑赢业务的同时如何实现技术成长? | 凌云时刻
- ubuntu为jar创建快捷方式
- 11083 旅游背包(优先做)