我有一个使用crypto / aes加密和解密明文的go脚本。
https://play.golang.org/p/le_-uuzWN4
我希望在不同的计算机上使用此脚本并生成相同的加密文本。我认为通过自定义IV,无论在何处都可以实现一致的加密。 现在它在go操场上与https://repl.it/languages/go
上产生不同的结果是否有可能产生一致的加密,或者由于内部实现(如加密盐等),它总是会有所不同。
另外,究竟什么是IV,我仍然对此感到困惑。文档并没有真正解释它是什么
答案 0 :(得分:0)
我弄清楚为什么每次都会生成不同的密文。 IV随机使用此声明
if _, err := io.ReadFull(rand.Reader, iv); err != nil {
panic(err)
}
删除它会使IV保持不变,并且在任何机器上给出相同的Key和IV时它将生成相同的加密