golang ase from mysql decode

golang ase加密解密

encode

import ""github.com/forgoer/openssl""
func Encrypt(origData, key []byte) ([]byte, error) {
	return openssl.AesECBEncrypt(origData, key, openssl.PKCS7_PADDING)
}

encdoe

func Decrypt(crypted, key []byte) (string, error) {
	if len(crypted) == 0 {
		return "", nil
	}
	dst, err := openssl.AesECBDecrypt(crypted, key, openssl.PKCS7_PADDING)
	if err != nil {
		return "", err
	}
	return string(dst), nil
}

base64 decode ase

func DecryptData(data string) (newData string) {
	defer func() {
		if err := recover(); err != nil {
			log.Fatalln(err)
		}
	}()
	if data != "" {
		bytesPass, err := base64.StdEncoding.DecodeString(data)
		if err != nil {
			return ""
		}
		newData, err = Decrypt(bytesPass, []byte(AesKey))
		if err != nil {
			return ""
		}
		return
	}
	return ""
}

base encode ase

func EncryptData(data string) string {
	if data != "" {
		dataBytes, _ := Encrypt([]byte(data), []byte(AesKey))
		return base64.StdEncoding.EncodeToString(dataBytes)
	}
	return ""
}

connnet mysql

import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)

var err error
	dsn := "root:Test-123@(192.168.0.56:13306)/ccbc_quanju_b1?charset=utf8&parseTime=True&loc=Local"
	db, err := gorm.Open("mysql", dsn)
	if err != nil {
		fmt.Println(err)
		panic("failed to connect database")
	}

	var row EmergencyMeetingDevice
	if err = db.Model(&EmergencyMeetingDevice{}).Debug().Where("id=?", 2).First(&row).Error; err != nil {
		fmt.Println(err)
		panic("failed to query emergency_meeting_device")
	}

	fmt.Printf("pwd raw:%s\n", row.Password)

	fmt.Printf("pwd raw:%s\n decode :%s\n", row.Password, DecryptData(row.Password))
posted @ 2022-08-03 11:18  vx_guanchaoguo0  阅读(59)  评论(0编辑  收藏  举报