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

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

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

密码破解: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 条评论
登录 后参与评论

相关文章

来自专栏安恒信息

数据加密技术再加强,Twitter全力应对NSA信息安全威胁

据国外媒体报道,为了防范美国国安局(NSA)的监听,保障自身和用户的数据安全,Twitter将现有加密技术之外再增加名为PFS(perfect fo...

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

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

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

2734
来自专栏即时通讯技术

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

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

742
来自专栏黑白安全

加密电邮在裸奔:PGP与S.MIME严重漏洞曝光

据 ArsTechnica 报道,此前在互联网上被广泛使用的电子邮件加密方法(PGP 与 S/Mime),已经曝出了两个严重的漏洞,或导致加密电邮在黑客面前暴露...

651
来自专栏区块链

数字证书的存储和安全性

数字证书的产生、分发和存储 首先,让我们来回顾一下数字证书产生和分发的简要过程。一个网上用户怎样才能得到一张数字证书呢? ? CA将证书分发给用户的途径有多种。...

22210
来自专栏机器人网

一文带你全面了解发电机!

一、发电机的种类和功能特点 发电机是指受到机械动力的作用时产生电的设备。在这种转换过程中,机械动力来自于各种各样的其他形式的能源,如风能、水能、热能、太阳能等。...

3175
来自专栏大数据文摘

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

1505
来自专栏FreeBuf

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

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

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

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

1293
来自专栏blackheart的专栏

[信息安全] 2.密码工具箱(续)

在上一篇1.密码工具箱中介绍了一些密码技术相关的一些基本工具,同时遗留了一个鸡生蛋蛋生鸡的问题和公钥的认证问题( ̄▽ ̄)",这里再补充几个常用的工具先。 1. ...

19710

扫码关注云+社区