前端动态加盐慢加密方案图解

加密:利用某种加密算法,将明文转换成无法简单识别的密文。

解密:利用相应的解密算法,将密文转换成可识别的明文。

密码破解:1、算法逆向破解(一般算法都是不可逆的);2、穷举暴力破解 3、查表,实际上表也是提前穷举跑出来的。

慢加密:提高加密时间来相应的加大破解时间和难度。

慢加密出现的原因:密码破解的时间和加密算法是直接关联的,例如 MD5 加密是非常快的,加密一次耗费 1 微秒,那破解时随便猜一个词组,也只需 1 微秒,攻击者一秒钟就可以猜 100 万个。如果加密一次提高到 10 毫秒,那么攻击者每秒只能猜 100 个,破解速度就慢了一万倍。提高加密时间有两种方法,一是多次加密,二是加大加密算法的复杂度。

但如果是服务器端加密,使用慢加密的网站,如果同时来了多个用户,服务器 CPU 可能就不够用了。所以前端加密在客户端拥有强大的计算能力的今天,逐渐被考虑。

慢加密过程:

破解方法: 暴力的穷举生成字典法

为了对抗这种破解方法,还得用经典的手段:加盐。加密过程中针对不同的用户引入不同的盐值,即可对抗这种常规的暴力穷举字典破解方法。

加盐慢加密:

这样,即使相同的密码,对于不同的用户,「慢加密结果」也不一样了。

由于用户的盐值也是需要存储在后台的,用户登录时,在输入用户名后,我们必须获取用户盐值才能加密明文密码进行提交验证:

为了更安全,可以定期的更换用户盐值:

由于不同的用户计算机的性能不一样,如何把握慢加密算法的强度很重要,如果用户计算机性能过差,而慢加密算法强度过高,会造成用户登录过慢的问题,所以设计加密算法时,可以根据用户侧的计算性能动态决定加密算法的强度,设此强度为S,在用户注册或登录时,可以根据用户计算性能检测程序段来设定强度S的值,此值会与用户名、密码以及盐值一同存在服务器上:

一般用户侧计算性能的评估也很简单,计算一定时间内的计算处理能力就行:

setTimeout(function() {
    flag = false;
    console.log(S);
}, 1000);

while(flag) {
    x = hash(x);
    S++;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

流行iOS网络通信库AFNetworking曝SSL漏洞,影响银联、中国银行、交通银行在内的2.5万个iOS应用

微信:freebuf 一个存在于流行开源iOS网络通信库AFNetworking中的严重漏洞使得苹果应用商店中的25000个iOS应用中的HTTPS流量暴露在中...

26360
来自专栏大数据文摘

老听别人说加密算法,现在给你个机会深入了解下

16850
来自专栏FreeBuf

Google全系列产品不再信任赛门铁克某款根证书

Google宣布在接下来的几周,Google会在Chrome、Android和其他Google产品中将把赛门铁克颁发的“Class 3 Public Prima...

20070
来自专栏FreeBuf

那些年绕过的反爬手段

笔者第一份工作就是以java工程师的名义写爬虫,不得不说第一份工作很重要啊,现在除了爬虫不会干别的,到现在已经干了近5年了,期间经历了不少与反爬策略的斗争。最近...

19540
来自专栏Java架构沉思录

深入浅出密码学(上)

前言 无论你有没有意识到,日常生活中我们几乎每天都在跟密码学打交道。只要你接触过互联网,那么基本上离不开密码学。举个最简单的例子,现在的很多网站都是通过HTTP...

43450
来自专栏带你撸出一手好代码

写了一个bug,最后却变成了feature,要不要修呢?

事情是这样子的,前不久接到一个需求,为一个游戏开发礼包码功能 通常一款游戏运营期间会搞各种各样的活动吸引玩家,其中最常见的就是发放礼包, 玩家可以通过礼包码兑...

30340
来自专栏即时通讯技术

如果这样来理解HTTPS,一篇就够了!

可能有初学者会问,即时通讯应用的通信安全,不就是对Socket长连接进行SSL/TLS加密这些知识吗,干吗要理解HTTPS协议呢。

11720
来自专栏互联网高可用架构

从微信支付宝支付接口设计谈API接口产品的设计经验和最佳实践

20130
来自专栏腾讯Bugly的专栏

“HTTPS”安全在哪里?

背景 最近基于兴趣学学习了下 HTTPS 相关的知识,在此记录下学习心得。 在上网获取信息的过程中,我们接触最多的信息加密传输方式也莫过于 HTTPS 了。每当...

29140
来自专栏java思维导图

为何你会被强插广告/盗号?谈HTTPS连接的那些事

作者:PConline原创 链接:http://pcedu.pconline.com.cn/980/9804194.html 相信很多朋友...

32160

扫码关注云+社区

领取腾讯云代金券