为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 golang 加密示例不使用随机 IV?

为什么 golang 加密示例不使用随机 IV?

Go
呼如林 2021-11-08 15:59:24
根据 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)

}


查看完整回答
反对 回复 2021-11-08
  • 1 回答
  • 0 关注
  • 282 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信