转自:https://blog.csdn.net/DavidHuang2017/article/details/80283469 一.什么是加盐? 1.背景 现在很多公司后台以hash值形式存储用户密码(虽然本文以MD5哈希函数为例,但becrypt函数最常用的),用于哈希函数存在碰撞的特性,当后台数据库被攻击然后获取到用户密码哈希值时,还是能通过一定的方法(比如彩虹表攻击)破解用户密码. 举个例子:http://www.cmd5.com/ 能破解. 2.加盐原理简介 简单来说:由原来的H(p)…
一.前言 - webpack热更新 Hot Module Replacement,简称HMR,无需完全刷新整个页面的同时,更新模块.HMR的好处,在日常开发工作中体会颇深:节省宝贵的开发时间.提升开发体验. 刷新我们一般分为两种: 一种是页面刷新,不保留页面状态,就是简单粗暴,直接window.location.reload(). 另一种是基于WDS (Webpack-dev-server)的模块热替换,只需要局部刷新页面上发生变化的模块,同时可以保留当前的页面状态,比如复选框的选中状态.输入框…
摘要: 在密码学中,加盐是指在散列之前将散列内容(例如:密码)的任意固定位置插入特定的字符串.这个在散列中加入字符串的方式称为“加盐”.其作用是让加盐后的散列结果和没有加盐的结果不相同,在不同的应用情景中,这个处理可以增加额外的安全性. 1. 什么是加盐? 在密码学中,加盐是指在散列之前将散列内容(例如:密码)的任意固定位置插入特定的字符串.这个在散列中加入字符串的方式称为“加盐”.其作用是让加盐后的散列结果和没有加盐的结果不相同,在不同的应用情景中,这个处理可以增加额外的安全性.而Phoeni…
轻松理解Redux原理及工作流程 Redux由Dan Abramov在2015年创建的科技术语.是受2014年Facebook的Flux架构以及函数式编程语言Elm启发.很快,Redux因其简单易学体积小在短时间内成为最热门的前端架构. 本文中我将用通俗易懂的方式讲述Redux的原理和工作流程 结构图 React组件(或其他使用Redux的组件,这里用react组件来进行举例)和Redux的关系 各部分的身份 我将会把这个过程比拟成图书馆的一个流程来帮助理解. Action Creator(具体…
0x00 背景 大多数的web开发者都会遇到设计用户账号系统的需求.账号系统最重要的一个方面就是如何保护用户的密码.一些大公司的用户数据库泄露事件也时有发生,所以我们必须采取一些措施来保护用户的密码,即使网站被攻破的情况下也不会造成较大的危害.保护密码最好的的方式就是使用带盐的密码hash(salted password hashing).对密码进行hash操作是一件很简单的事情,但是很多人都犯了错.接下来我希望可以详细的阐述如何恰当的对密码进行hash,以及为什么要这样做. 0x01 重要提醒…
如果你是一个 web 开发工程师,可能你已经建立了一个用户账户系统.一个用户账户系统最重要的部分是如何保护密码.用户账户数据库经常被黑,如果你的网站曾经被攻击过,你绝对必须做点什么来保护你的用户的密码.最好的用来保护密码的方式是采用加盐密码散列 (salted password hasing). 本文将解释为什么要这样做. 互联网上充斥着大量的误导信息,有许许多多的关于如何正确做密码散列的矛盾的观点,有些甚至是误解.密码散列是一个简单的事情,但是仍然有很多人做错了.在这篇文章中,我不仅将解释正确…
<看图轻松理解数据结构和算法>,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握.本系列包括各种堆.各种队列.各种列表.各种树.各种图.各种排序等等几十篇的样子. 关于LSM树 LSM树,即日志结构合并树(Log-Structured Merge-Tree).其实它并不属于一个具体的数据结构,它更多是一种数据结构的设计思想.大多NoSQL数据库核心思想都是基于LSM来做的,只是具体的实现不同.所以本来不打算列入该系列,但是有朋友留言了好几次让我讲LSM树,那么就说一下LSM树. LS…
前言 关于这个话题, 网上有很多文章,这里, 我希望通过最简单的话语与大家分享. 依赖注入和控制反转两个概念让很多初学这迷惑, 觉得玄之又玄,高深莫测. 这里想先说明两点: 依赖注入和控制反转不是高级的,很初级,也很简单. 在JAVA世界,这两个概念像空气一样无所不在,彻底理解很有必要. 第一节 依赖注入 Dependency injection 这里通过一个简单的案例来说明. 在公司里有一个常见的案例: "把任务指派个程序员完成". 把这个案例用面向对象(OO)的方式来设计,通常在面…
密码加密简介 密码存储的主要形式: 明文存储:肉眼就可以识别,没有任何安全性. 加密存储:通过一定的变换形式,使得密码原文不易被识别. 密码加密的几类方式: 明文转码加密算法:BASE64, 7BIT等,这种方式只是个障眼法,不是真正的加密. 对称加密算法:DES, RSA等. 签名加密算法:也可以理解为单向哈希加密,比如MD5, SHA1等.加密算法固定,容易被暴力破解.如果密码相同,得到的哈希值是一样的. 加盐哈希加密算法:加密时混入一段"随机"字符串(盐值)再进行哈希加密.即使密…
前言:正确理解django视图view,模型model,模板的概念及其之间的关联关系,才能快速学习并上手使用django制作网页 本文主要讲解自己在学习django后对视图view的理解 在进入正文之前,你需要了解网页的工作原理:当用户访问网页时,其用户浏览器会对访问的网页发出一个Request(中文:客户端请求), 网页接受请求后,会反馈用户浏览器一个Response对象(中文:服务器端响应) 若您理解网页的工作原理,请直接阅读下文. 正文:一个django视图需要拥有视图函数,如果想要视图函…