我想从用户密码制作256位消息摘要。
我知道建议使用Argon2以确保安全性,但到目前为止Android设备不支持它。
所以,我想出了下面的另一种方法。
加密大的随机数据,这个数据太大,以至于GPU无法保留SRAM上的数据,而是通过用户密码使用某种算法(例如AES)。
使用Zip算法对加密数据进行编码。
使用SHA256
我认为Zip编码是GPU最差的算法之一, 因为它每个只处理1位并且有许多If分支。 不可并行化。
Zip是无损压缩,因此步骤2中生成的数据对用户密码是唯一的。
考虑GPU架构,执行If分支时需要很多时钟周期, 我认为使用GPU编码Zip比使用CPU慢。
这个怎么样? 安全
我只是一个安全的初学者。
任何人都可以评估这种方法吗?
答案 0 :(得分:1)
仅仅使用哈希函数是不够的,只添加一个盐对提高安全性几乎没有作用。相反,使用随机盐在HMAC上进行大约100毫秒的持续时间并使用哈希值保存盐。使用PBKDF2
(又名Rfc2898DeriveBytes
),password_hash
/ password_verify
,Bcrypt
等功能以及类似功能。关键是要让攻击者花费大量时间通过暴力查找密码。保护您的用户非常重要,请使用安全密码方法。