项目地址:https://github.com/jan-bar/EncryptionFile
之所以更新这一版,是因为有人觉得上个版本中只用到`aes cfb`这种流式加密算法不安全,他们希望用更安全的`aes gcm`加密方式。因此我看了go标准库支持`cipher.AEAD,cipher.Stream,cipher.BlockMode`这三种加密接口,因此这一版本直接支持这三种接口。用户还可以自定义加解密方案,只要是上面三种接口类型就可以实现数据安全加解密。
你也可以用我内置的 `EncryptionFile.GenEncCipher,EncryptionFile.GenDecCipher` 这两个方法轻松实现指定加密算法,如下所示。
当然你也可以自己写方法,只要实现`cipher.AEAD,cipher.Stream,cipher.BlockMode`这三种接口就行。
```go
// an encryption scheme can be specified with the built-in method
// GenEncCipher(cipher.NewCFBEncrypter)
// GenEncCipher(cipher.NewCTR)
// GenEncCipher(cipher.NewOFB)
// GenEncCipher(cipher.NewCBCEncrypter)
// GenEncCipher(cipher.NewGCM)
EncData(Reader, Writer, pubKey, md5.New(), GenEncCipher(cipher.NewCFBEncrypter))
// an decryption scheme can be specified with the built-in method
// GenDecCipher(cipher.NewCFBDecrypter)
// GenDecCipher(cipher.NewCTR)
// GenDecCipher(cipher.NewOFB)
// GenDecCipher(cipher.NewCBCDecrypter)
// GenDecCipher(cipher.NewGCM)
DecData(Reader, Writer, priKey, md5.New(), GenDecCipher(cipher.NewCFBDecrypter))
```
可用学习单元测试 [TestCipher](https://github.com/jan-bar/EncryptionFile/blob/fb584cc5250eec2e513c2b0dd650846e8dc52ed9/EncryptionFile_test.go#L152),掌握这个库的用法。
有疑问加站长微信联系(非本文作者)