Go 在将图像写入磁盘之前进行加密
给定以下代码:Go 在将图像写入磁盘之前进行加密,go,encryption,aes,Go,Encryption,Aes,给定以下代码: import ( "image" "image/color" "image/png" "os" ) var img = image.NewRGBA(image.Rect(0, 0, 100, 100)) var col color.Color func main() { col = color.RGBA{255, 0, 0, 255} // Red
import (
"image"
"image/color"
"image/png"
"os"
)
var img = image.NewRGBA(image.Rect(0, 0, 100, 100))
var col color.Color
func main() {
col = color.RGBA{255, 0, 0, 255} // Red
HLine(10, 20, 80)
col = color.RGBA{0, 255, 0, 255} // Green
Rect(10, 10, 80, 50)
f, err := os.Create("draw.png")
if err != nil {
panic(err)
}
defer f.Close()
png.Encode(f, img)
}
在将图像写入磁盘之前,如何使用AES对其进行加密?不幸的是,png.Encode()没有返回编码文件,而是直接写入文件。如果它返回一个文件,我会很清楚这个方法。但是…我被绊倒了。
png.Encode
接受一个标准的Go接口io.Writer
,并写入其中。所以它不是直接写入文件
第一步:将bytes.Buffer
传递给png.Encode
,然后将png图像编码为缓冲区中的字节片
第二步:使用
aes
模块加密字节缓冲区。查看官方文档中的示例:或签出。io.Writer可以处理多少数据?io.Writer
是一个接口,它在运行时实际上不做任何事情。实现它的类型可以“处理数据”。一个bytes.Buffer
实现io.Writer
并且大小可变-它将随着新数据写入而增长,就像一个片段一样