首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >1键= AES + PBKDF2 + HMAC

1键= AES + PBKDF2 + HMAC
EN

Stack Overflow用户
提问于 2018-01-08 05:41:42
回答 1查看 516关注 0票数 1

我的算法模板如下:

代码语言:javascript
复制
...
Mkey = '123' // from Master Key
KdfKey = SHA512(Mkey) // from PBKDF2 password
KdfSalt = SHA256(AesIV + KdfKey) // from PBKDF2 salt
Pbkdf2 = PBKDF2(KdfKey, KdfSalt, 64 + 32) // "64+32"=OutputLen, Iteration is user selected

AesKey = sublast(Pbkdf2, 32) // AES 256 bit CBC key, select last 32 bit
HmacKey = subfirst(Pbkdf2, 64) // HMAC-SHA256 key, select first 64 bit
...

我的问题:

  1. 安全还是不安全?
  2. "HmacKey“破解或建立,加密消息或"Mkey”的安全问题?
  3. 如果这是不安全的,我应该如何使用一个密码
EN

回答 1

Stack Overflow用户

发布于 2018-01-08 07:45:15

安全还是不安全?

似乎您正在尝试使用最强大的方法,如何创建一个加密和MAC密钥从一个密码。我想说这有点过火了,但为了安全起见,似乎没问题。

您需要注意这个流程中的一个弱点,它是用户的输入。

迭代是用户选择的

呃..。看,这是你不应该信任用户的地方(也许用户可以选择三个选项之一,IMHO --依赖这里的用户是没有意义的)

"HmacKey“破解或建立,加密消息或"Mkey”的安全问题?

如果有办法破解/找到hmackey,我们有比几个密码更大的问题。要回答- pbkdf是专门设计的从低熵密码输出均匀分布,所以如果找到hmackey (pbkdf的输出),它就不会告诉原始密码。

如果这是不安全的,我应该如何使用一个密码

密码的全部问题是,它们被用户记住,并且往往具有低熵(随机性和长度)。使用好的密码是关键。(使用pbkdf的imho只是没有更好的解决方案的密码解决方案:/ )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48144785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档