diff --git a/main.go b/main.go index 7b1e6d5..962688e 100644 --- a/main.go +++ b/main.go @@ -4,49 +4,11 @@ import ( "flag" "fmt" "goED/util" - "io/ioutil" - "os" ) -//PathExists 判断一个文件或文件夹是否存在 -//输入文件路径,根据返回的bool值来判断文件或文件夹是否存在 -func PathExists(path string) (bool, string) { - if len(path) == 0 { - return false, "path 不能为空" - } - _, err := os.Stat(path) - if err == nil { - return true, "存在" - } - if os.IsNotExist(err) { - return false, "path路径文件不存在" - } - return false, "path路径文件不存在" -} - -func readFileToStr(path string) string { - content, err := ioutil.ReadFile(path) - if err != nil { - fmt.Println("read file failed, err:", err) - return "" - } - return string(content) -} - -func genFile(str, path string) { - file, err := os.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666) - if err != nil { - fmt.Println("open file failed, err:", err) - return - } - defer file.Close() - file.Write([]byte(str)) //写入字节切片数据 - //file.WriteString("hello go") //直接写入字符串数据 -} - func test() { //content, err := ioutil.ReadFile("C:\\Users\\61778\\Desktop\\HelloWorld.class") - strContent := readFileToStr("C:\\METSIM\\example\\gascleaning_1.5_30.sfw") + strContent := util.ReadFileToStr("C:\\METSIM\\example\\gascleaning_1.5_30.sfw") //fmt.Println(strContent) Encrypt, _ := util.AesEcpt.AesBase64Encrypt(strContent) //fmt.Printf("Encrypt: %v\n", Encrypt) @@ -54,33 +16,6 @@ func test() { //fmt.Printf("Decrypt: %v\n", Decrypt) fmt.Printf("明文长度: %v\n解密后长度: %v\n", len(strContent), len(Decrypt)) } -func testGenFile(path, enPath, dePath string) { - strContent := readFileToStr(path) - Encrypt, _ := util.AesEcpt.AesBase64Encrypt(strContent) - genFile(Encrypt, enPath) - //fmt.Printf("Encrypt: %v\n", Encrypt) - Decrypt, _ := util.AesEcpt.AesBase64Decrypt(Encrypt) - genFile(Decrypt, dePath) - //fmt.Printf("Decrypt: %v\n", Decrypt) - fmt.Printf("明文长度: %v\n解密后长度: %v\n", len(strContent), len(Decrypt)) -} - -func enFile(path string) { - enFileToOutPath(path, path) -} -func enFileToOutPath(path, outPath string) { - strContent := readFileToStr(path) - Encrypt, _ := util.AesEcpt.AesBase64Encrypt(strContent) - genFile(Encrypt, outPath) -} -func deFile(path string) { - deFileToOutPath(path, path) -} -func deFileToOutPath(path string, outPath string) { - strContent := readFileToStr(path) - Decrypt, _ := util.AesEcpt.AesBase64Decrypt(strContent) - genFile(Decrypt, outPath) -} var mode = flag.String("mode", "de", "加密或者解密 en de") var path = flag.String("path", "", "文件路径") @@ -90,7 +25,7 @@ var key = flag.String("key", "", "加密秘钥-限制大小写字母数字16位 func main() { flag.Parse() //验证操作文件路径是否有效 - flag, message := PathExists(*path) + flag, message := util.PathExists(*path) if !flag { fmt.Printf(message) } else { @@ -112,21 +47,21 @@ func main() { //执行加密 } else if *mode == "en" { modeName = "加密" - enFileToOutPath(*path, out) + util.EnFileToOutPath(*path, out) //执行解密 } else if *mode == "de" { modeName = "解密" - deFileToOutPath(*path, out) + util.DeFileToOutPath(*path, out) } fmt.Println(modeName + "成功,被" + modeName + "文件是在: " + *path + " " + modeName + "后文件生产在:" + out) } //test() - // testGenFile("C:\\METSIM\\example\\gascleaning_1.5_30.sfw", + // TestGenFile("C:\\METSIM\\example\\gascleaning_1.5_30.sfw", // "C:\\Users\\61778\\Desktop\\testGoED\\gascleaning_1.5_30.sfw.EN", // "C:\\Users\\61778\\Desktop\\testGoED\\gascleaning_1.5_30.sfw") - // enFile("C:\\Users\\61778\\Desktop\\HelloWorld.class") - // deFile("C:\\Users\\61778\\Desktop\\HelloWorld.class") + // EnFile("C:\\Users\\61778\\Desktop\\HelloWorld.class") + // DeFile("C:\\Users\\61778\\Desktop\\HelloWorld.class") // cmd := exec.Command("cmd", "/C", "C:\\METSIM\\METSIM.exe", // "MOD=C:\\Users\\61778\\Desktop\\testGoED\\gascleaning_1.5_30.sfw", "SIL=1") diff --git a/util/OpFile.go b/util/OpFile.go new file mode 100644 index 0000000..527e7ef --- /dev/null +++ b/util/OpFile.go @@ -0,0 +1,71 @@ +package util + +import ( + "fmt" + "io/ioutil" + "os" +) + +//PathExists 判断一个文件或文件夹是否存在 +//输入文件路径,根据返回的bool值来判断文件或文件夹是否存在 +func PathExists(path string) (bool, string) { + if len(path) == 0 { + return false, "path 不能为空" + } + _, err := os.Stat(path) + if err == nil { + return true, "存在" + } + if os.IsNotExist(err) { + return false, "path路径文件不存在" + } + return false, "path路径文件不存在" +} + +func ReadFileToStr(path string) string { + content, err := ioutil.ReadFile(path) + if err != nil { + fmt.Println("read file failed, err:", err) + return "" + } + return string(content) +} + +func GenFile(str, path string) { + file, err := os.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666) + if err != nil { + fmt.Println("open file failed, err:", err) + return + } + defer file.Close() + file.Write([]byte(str)) //写入字节切片数据 + //file.WriteString("hello go") //直接写入字符串数据 +} + +func TestGenFile(path, enPath, dePath string) { + strContent := ReadFileToStr(path) + Encrypt, _ := AesEcpt.AesBase64Encrypt(strContent) + GenFile(Encrypt, enPath) + //fmt.Printf("Encrypt: %v\n", Encrypt) + Decrypt, _ := AesEcpt.AesBase64Decrypt(Encrypt) + GenFile(Decrypt, dePath) + //fmt.Printf("Decrypt: %v\n", Decrypt) + fmt.Printf("明文长度: %v\n解密后长度: %v\n", len(strContent), len(Decrypt)) +} + +func EnFile(path string) { + EnFileToOutPath(path, path) +} +func EnFileToOutPath(path, outPath string) { + strContent := ReadFileToStr(path) + Encrypt, _ := AesEcpt.AesBase64Encrypt(strContent) + GenFile(Encrypt, outPath) +} +func DeFile(path string) { + DeFileToOutPath(path, path) +} +func DeFileToOutPath(path string, outPath string) { + strContent := ReadFileToStr(path) + Decrypt, _ := AesEcpt.AesBase64Decrypt(strContent) + GenFile(Decrypt, outPath) +}