go实现AES加密(CBC、CFB、OFB、ECB、CTR、GCM模式)

 提示:转载请注明原文链接

 本文永久链接:https://360us.net/article/81.html

go的AES加密主要用crypto/aescrypto/cipher两个库来实现。

AES加密模式又好多种,这里研究了6种模式:CBC、CFB、OFB、ECB、CTR、GCM模式。

一看到这么多模式,如果那里需要用到一下都不知道哪种好,这里大概总结一下。

如果数据通过非对称签名进行身份验证,则使用CBC,否则使用GCM。

最好的模式是GCM模式,GCM可以保证数据的保密性和完整性,其他模式只能保证保密性,不能保证完整性,具体可以去了解下AEAD。

GCM模式属于AEAD加密。

所以除了GCM模式之外其他模式最好是增加hmac哈希,用来验证数据完整性。

ECB模式不建议使用,因为这种模式不安全,go的内置库也没有去实现这种模式。

go AES 6种加密模式代码:https://github.com/ilaziness/gopkg/tree/main/crypto/aes

iv值的生成可以参考cfb模式的代码,每次加密都是随机生成的。

 评论
暂无评论