好的文章虽然会迟到,但是永不会缺席!
func main() {
pack()
//fmt.Println(len(RandomSeed))
}
// TODO: 如何进行加密的呢?
// 对文件进行打包.
func pack() {
// 直接在当前文件根路径打包.
out, err := os.Create("test.zip")
if nil != err {
log.Println(err.Error())
return
}
// 通过File构造ZIP的Writer.
writer := zip.NewWriter(out)
// Encrypt返回的是一个IO流,该IO流表示的是ZIP里面已经加密了的文件的IO流.
// 换句话就是通过该该IO流来操作已经加密了的文件的。
w, err := writer.Encrypt("2021.csv", "123", zip.AES256Encryption)
if nil != err {
log.Fatal(err.Error())
}
// w是加密被加密的文件.
CreateCsvFile(w)
// 刷新到ZIP中.
writer.Flush()
if err := writer.Close(); err != nil {
log.Println(err.Error())
}
}
func CreateCsvFile(w io.Writer) {
// 写入的是UTF-8 BOM.
// file, _ := os.Create("test.csv")
// file.WriteString("\xEF\xBB\xBF")
writer := csv.NewWriter(w)
data := [][]string{
{"CDKNumber", "CDK"},
{"2", "ASFAFADFAF"},
{"3", "AFADFADFAF"},
{"4", "AFDAADAWED"},
}
writer.WriteAll(data)
writer.Flush()
}
OK,因为文件是在项目根目录中写的,运行main方法可以看到在根目录生成了一个ZIP文件,里面是加密了的CSV文件。