1
cooioobb 2022-11-11 09:35:07 +08:00 via Android
确实稳妥简单。也够用
|
2
shinession 2022-11-11 09:35:33 +08:00
涨姿势了 :)
|
3
leavic 2022-11-11 09:48:42 +08:00 1
密码学应用基本原则不就是不要自己发明轮子吗
|
4
eason1874 2022-11-11 09:55:37 +08:00
这是防爆破最佳实践吧,挺多软件都是这样做
|
5
litmxs 2022-11-11 09:57:08 +08:00 via Android
慢哈希
|
6
codehz 2022-11-11 09:58:57 +08:00 1
你这是哪来的 bit locker ,怎么还有 gbk_to_unicode 的
|
7
CatCode 2022-11-11 10:01:46 +08:00
应该是逆向来的代码吧
|
8
shuxhan 2022-11-11 10:50:59 +08:00
最简单的方式 也是最有效的
|
9
tool2d OP |
10
ipwx 2022-11-11 10:58:06 +08:00 1
这点时间就可以防止黑客用字典的方式暴力破解本地密码。
参数里面的 r_salt:请,认真地看着我。 ---- 哈希类验证防止彩虹表的方法有两布: 1. 加盐。 2. 更多的哈希循环。 缺一不可。 |
12
majula 2022-11-11 11:14:01 +08:00
哈哈,微软真的是思路清奇
记得以前有个 Password Hashing Competition ,参赛者选择的 hash function 基本上都是 blake2/sha512 ,没有用 sha256 的(大概是因为 sha256 用硬件加速成本太低了),最后胜出的是 argon2 (也是基于 blake2 ) 不知道微软当年有没有考虑参赛(狗头 |
13
matrix67 2022-11-11 11:18:28 +08:00
我记得 keepass 还是 truecrypt 的 hash 迭代次数,就是 ( 1s /你本机算一次 hash 的时间)。这样你每次解开主密码需要 1s ,但是黑客受不了。
|
14
matrix67 2022-11-11 11:20:20 +08:00
@matrix67 #13 是 keepass https://keepass.info/help/base/security.html
By clicking the '1 Second Delay' button in the database settings dialog, KeePass computes the number of iterations that results in a 1 second delay when loading/saving a database. |
17
billlee 2022-11-11 13:41:10 +08:00 via Android
这是 KDF 的标准做法
|
18
jim9606 2022-11-11 13:46:40 +08:00 via Android
@majula bitlocker 是跟随 vista 一起推出的功能,那时候 blake 都还没诞生,很多现在使用的密码原语都还没标准化。
Bitlocker 主要优势还是操作系统集成,例如基于 TPM 的自动解锁。想在 linux 用开源组件复刻这套功能还蛮麻烦的。 |
19
antness 2022-11-11 13:49:49 +08:00 via Android
@ipwx 如果把上一步的 hash 结果用来生成盐会不会有什么用,比如可以减少循环次数但不减弱强度等等呢
|
21
44670 2022-11-11 20:25:11 +08:00
比较通用的实践是 pbkdf2 ,除了不断对自身 hmac 以外,还会和上一轮的结果异或一下
|
23
LittleDust 2022-11-12 07:13:38 +08:00 via iPhone
这个循环里面 1024 * 1024 可以提出去吧…每次循环都要计算一下,这是微软源码?
|
24
kice 2022-11-13 02:24:14 +08:00 via Android 3
@LittleDust 编译器优化里面有一个叫做常量折叠的操作,可以去了解看看。
|
25
julyclyde 2022-11-14 09:55:54 +08:00
多次 hash 会导致冲突增加吧
|