package main
import (
"encoding/hex"
"flag"
"fmt"
"strings"
"github.com/forgoer/openssl"
)
var key = []byte{ 0xab, 0xcd,
0xef, 0x01, 0x23, 0x45, 0x67, 0x01, 0x23, 0x45, 0x67, 0x89,
0xab, 0xcd, 0xef, 0xfe, 0xdc, 0xba,
0x98, 0x76, 0x54, 0x32, 0x10, 0x89}
func main() {
var enc string
var dec string
flag.StringVar(&enc, "enc", "", "encrypt str")
flag.StringVar(&dec, "dec", "", "decrypt str")
flag.Parse()
if enc != "" {
result := encrypt(enc)
fmt.Println("encrypt src:", enc, "result:", result)
}
if dec != "" {
result := decrypt(dec)
fmt.Println("decrypt src:", dec, "result:", result)
}
// mingwen := "112233445566"
// y := encrypt(mingwen)
// fmt.Println(y)
// x2 := "d3fb432f2f71593a7baf1a445c808819"
// x := decrypt(x2)
// fmt.Println(x)
// fmt.Println(y == x2)
}
func decrypt(passwd string) string {
srcBytes, _ := hex.DecodeString(passwd)
y, err := openssl.Des3ECBDecrypt(srcBytes, key, openssl.ZEROS_PADDING)
if err != nil {
return ""
}
return strings.Trim(string(y), "")
}
func encrypt(passwd string) string {
x, err := openssl.Des3ECBEncrypt([]byte(passwd), key, openssl.ZEROS_PADDING)
if err != nil {
return ""
}
return hex.EncodeToString(x)
}
golang实现des3加解密
于 2021-09-19 14:35:27 首次发布