Golang进行base64加密文件源代码公开

有个B站的小伙伴看到我上传的加密文件视频后感到很神奇,文件是如何被加密的呢?那么我将代码直接公开吧,大家可以自行编译。

import (
	"bufio"
	"encoding/base64"
	"fmt"
	"os"
)

func encode(infile string,outfile string) {

	filex, err := os.Open(infile)
	if err!=nil{
		fmt.Println("未找到该文件,请确定文件是否存在。")
		return
	}
	aaa := make([]byte, 1024*99999)
	n, err := filex.Read(aaa)
	if err!=nil{
		fmt.Println("代码读入失败,请检查权限。")
	}
	get := base64.StdEncoding.EncodeToString(aaa[:n])
	file, err := os.OpenFile(outfile, os.O_WRONLY|os.O_CREATE, 0666)
	if err!=nil{
		fmt.Println("写出失败。")
		return
	}
	buf := bufio.NewWriter(file)
	buf.WriteString(get)
	buf.Flush()
	fmt.Println("加密成功,导出文件:",os.Args[3])
	defer file.Close()
}

func decode(infile string,outfile string){
	filex, err := os.Open(infile)
	if err!=nil{
		fmt.Println("未找到该文件,请确定文件是否存在。")
		return
	}
	aaa := make([]byte, 1024*99999)
	n, err := filex.Read(aaa)
	if err!=nil{
		fmt.Println("代码读入失败,请检查权限。")
	}
	get ,err:= base64.StdEncoding.DecodeString(string(aaa[:n]))
	if err != nil{
		fmt.Println("解密失败,非加密文件类型。")
		return
	}
	file, err := os.OpenFile(outfile, os.O_WRONLY|os.O_CREATE, 0666)
	if err!=nil{
		fmt.Println("写出失败。")
		return
	}
	buf := bufio.NewWriter(file)
	buf.Write(get)
	buf.Flush()
	fmt.Println("解密成功,导出文件:",os.Args[3])
	defer file.Close()
}

func main()  {
	thisiscode:=""
	if len(os.Args)==1{
		a:=""
		fmt.Println("\t文件加解密工具\n\t来自Ms08067小组 - Wind QQ:3162244583\n需要传递参数:\n-E 文件.exe 1.待转换文件 2.转换完成文件 加密\n-D 文件.exe 1.待转换文件 2.转换完成文件 解密\n查看程序源代码:--source")
 		fmt.Scanf("%s",&a)
	}
	if len(os.Args)==4{
		if os.Args[1]=="-E"{
			encode(os.Args[2],os.Args[3])
		}else if os.Args[1]=="-D"{
			decode(os.Args[2],os.Args[3])
		}else{
			fmt.Println("参数不存在。")
		}
	}else{
		if len(os.Args)==2{
			if os.Args[1]=="--source" {
				file, err := os.OpenFile("code.txt",os.O_CREATE|os.O_WRONLY,0666)
				if err !=nil{
					fmt.Println("代码写出失败,请检查权限。")
					return
				}
				file.Write([]byte(thisiscode))
				fmt.Println("代码输出code.txt文件成功。")
			}else{
				fmt.Println("参数错误,请检查。")
			}
		}else{
			if len(os.Args) != 1 {
				fmt.Println("参数错误,请检查。")
			}
		}


	}


}`
	if len(os.Args)==1{
		a:=""
		fmt.Println("\t文件加解密工具\n\t来自Ms08067小组 - Wind QQ:3162244583\n需要传递参数:\n-E 文件.exe 1.待转换文件 2.转换完成文件 加密\n-D 文件.exe 1.待转换文件 2.转换完成文件 解密\n查看程序源代码:--source")
 		fmt.Scanf("%s",&a)
	}
	if len(os.Args)==4{
		if os.Args[1]=="-E"{
			encode(os.Args[2],os.Args[3])
		}else if os.Args[1]=="-D"{
			decode(os.Args[2],os.Args[3])
		}else{
			fmt.Println("参数不存在。")
		}
	}else{
		if len(os.Args)==2{
			if os.Args[1]=="--source" {
				file, err := os.OpenFile("code.txt",os.O_CREATE|os.O_WRONLY,0666)
				if err !=nil{
					fmt.Println("代码写出失败,请检查权限。")
					return
				}
				file.Write([]byte(thisiscode))
				fmt.Println("代码输出code.txt文件成功。")
			}else{
				fmt.Println("参数错误,请检查。")
			}
		}else{
			if len(os.Args) != 1 {
				fmt.Println("参数错误,请检查。")
			}
		}


	}


}

  

posted @ 2020-06-15 14:27  WINDECODE  阅读(432)  评论(0)    收藏  举报