0

我想将加密的用户密码存储在数据库中。我需要使用双向对称加密,例如。AES(在这种特殊情况下不能选择使用哈希)。

第 1 部分
使用我需要加密的字符串作为密钥是否会显着增加风险?如果这很重要,则将公共可用(同一行)盐添加到密钥中。

第 2 部分
同样的问题,但适用于以下场景:

  • A 用 B 作为密钥(包括盐)加密,并且
  • B 使用 A 作为密钥(包括盐)加密。

两个加密值都存储在同一数据库行中。

4

1 回答 1

1

第1部分

只要您的字符串密码足够长并且您将字符串转换为密钥的功能是健壮的,那么以这种方式使用字符串密码就没有特殊的安全问题。

第2部分

为了防止涉及第一个块的重放攻击,您应该始终加盐。要么在 IV 中注入 nonce,要么在被加密的流的头部注入。

于 2012-12-12T12:44:41.683 回答