大佬教程收集整理的这篇文章主要介绍了Golang AES StreamReader加密 – 示例省略了对加密数据的任何身份验证,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在实现一个基于official Golang cipher example的文件加密后台守护进程:
func ExampleStreamReader() { key := []byte("example key 1234") inFile,err := os.Open("encrypted-file") if err != nil { panic(err) } defer inFile.Close() block,err := aes.NewCipher(key) if err != nil { panic(err) } // If the key is unique for each ciphertext,then it's ok to use a zero // IV. var iv [aes.blockSize]byte stream := cipher.NewOFB(block,iv[:]) outFile,err := os.OpenFile("decrypted-file",os.O_WRONLY|os.O_CREATE|os.O_TRUNC,0600) if err != nil { panic(err) } defer outFile.Close() reader := &cipher.StreamReader{S: stream,R: inFilE} // Copy the input file to the output file,decrypTing as we go. if _,err := io.Copy(outFile,reader); err != nil { panic(err) } // Note that this example is simplistic in that it omits any // authentication of the encrypted data. If you were actually to use // StreamReader in this mAnner,an attacker Could flip arbitrary bits in // the output. } func ExampleStreamWriter() { key := []byte("example key 1234") inFile,err := os.Open("plaintext-file") if err != nil { panic(err) } defer inFile.Close() block,err := os.OpenFile("encrypted-file",0600) if err != nil { panic(err) } defer outFile.Close() writer := &cipher.StreamWriter{S: stream,W: outFilE} // Copy the input file to the output file,encrypTing as we go. if _,err := io.Copy(writer,inFilE); err != nil { panic(err) } // Note that this example is simplistic in that it omits any // authentication of the encrypted data. If you were actually to use // StreamReader in this mAnner,an attacker Could flip arbitrary bits in // the decrypted result. }@H_674_4@以下引用是什么意思?关于我应该注意什么才能提供安全的加密和解密?
谢谢!
可以在这里找到一个很好的解释:https://security.stackexchange.com/a/33576.
Go支持其他支持完整性和身份验证检查的模式.正如rossum所说,你可以使用GCM或CCM.你可以在godoc.org找到很多例子.例如HashiCorp的memberlist library.
另一个值得一试的图书馆是golang.org/x/crypto/nacl年的NaCL港口:
func Open(out []byte,Box []byte,nonce *[24]byte,key *[32]bytE) ([]byte,bool) func Seal(out,message []byte,key *[32]bytE) []byte@H_674_4@如果您正在使用小消息,则此API可能会更容易使用.
以上是大佬教程为你收集整理的Golang AES StreamReader加密 – 示例省略了对加密数据的任何身份验证全部内容,希望文章能够帮你解决Golang AES StreamReader加密 – 示例省略了对加密数据的任何身份验证所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。