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("参数错误,请检查。")
}
}
}
}

浙公网安备 33010602011771号