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

根据 CWE-329,非随机 IV 允许字典攻击的可能性。但是,在 AES 加密示例中,golang 文档使用非随机 IV:


ciphertext := make([]byte, aes.BlockSize+len(plaintext))

iv := ciphertext[:aes.BlockSize]

这个实现安全还是我应该使用随机函数来获取我的 IV?


呼如林
浏览 286回答 1
1回答

慕码人2483693

它是安全的,因为 IV 是从/dev/urandom默认情况下由操作系统提供的密码安全伪随机数生成器 (CSPRNG) 填充的。从ExampleNewCBCEncrypter函数:iv := ciphertext[:aes.BlockSize]if _, err := io.ReadFull(rand.Reader, iv); err != nil {    panic(err)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go