golang实现des3加解密

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)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值