根据 CWE-329,非随机 IV 允许字典攻击的可能性。但是,在 AES 加密示例中,golang 文档使用非随机 IV:ciphertext := make([]byte, aes.BlockSize+len(plaintext))iv := ciphertext[:aes.BlockSize]这个实现安全还是我应该使用随机函数来获取我的 IV?
1 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
它是安全的,因为 IV 是从/dev/urandom默认情况下由操作系统提供的密码安全伪随机数生成器 (CSPRNG) 填充的。从ExampleNewCBCEncrypter函数:
iv := ciphertext[:aes.BlockSize]
if _, err := io.ReadFull(rand.Reader, iv); err != nil {
panic(err)
}
- 1 回答
- 0 关注
- 282 浏览
添加回答
举报
0/150
提交
取消