service/library/mycrypto/aesEcbCrypto.go

39 lines
912 B
Go

package mycrypto
import (
"encoding/base64"
"service/library/logger"
"github.com/forgoer/openssl"
)
type AesEcbCrypto struct {
aesPriKey []byte
}
func NewAesEcbCryptoFromString(aesPrivateKeyStr string) (p *AesEcbCrypto, err error) {
p = &AesEcbCrypto{}
//读取私钥
p.aesPriKey, err = base64.StdEncoding.DecodeString(aesPrivateKeyStr)
if err != nil {
logger.Error("Decoding aes primary key failed, check your config, please!, err: %v", err)
return
}
return
}
func (p *AesEcbCrypto) Encrypt(msg []byte) (encryptedBytes []byte, err error) {
//ECB加密
encryptedBytes, err = openssl.AesECBEncrypt(msg, p.aesPriKey, openssl.PKCS5_PADDING)
return
}
func (p *AesEcbCrypto) Decrypt(encryptedBytes []byte) (decryptedBytes []byte, err error) {
if len(encryptedBytes) == 0 {
return
}
decryptedBytes, err = openssl.AesECBDecrypt(encryptedBytes, p.aesPriKey, openssl.PKCS5_PADDING)
return
}