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))
本文来自博客园,作者:vx_guanchaoguo0,转载请注明原文链接:https://www.cnblogs.com/guanchaoguo/p/16546425.html