代码拉取完成,页面将自动刷新
package algorithm
import (
"crypto/cipher"
"encoding/base64"
"github.com/tjfoc/gmsm/sm4"
)
type Sm4 struct {
}
func (s *Sm4) Encrypt(raw, key []byte) (string, error) {
data, err := s.sm4Encrypt(raw, key)
if err != nil {
return "", err
}
return base64.StdEncoding.EncodeToString(data), nil
}
func (s *Sm4) Decrypt(raw string, key []byte) ([]byte, error) {
data, err := base64.StdEncoding.DecodeString(raw)
if err != nil {
return nil, err
}
return s.sm4Decrypt(data, key)
}
// 加密
func (s *Sm4) sm4Encrypt(raw []byte, key []byte) ([]byte, error) {
enc := NewECB(func(key []byte) (cipher.Block, error) {
block, err := sm4.NewCipher(key)
if err != nil {
return nil, err
}
return block, nil
})
return enc.Encrypt(raw, key, nil)
}
// 解密
func (s *Sm4) sm4Decrypt(raw []byte, key []byte) ([]byte, error) {
enc := NewECB(func(key []byte) (cipher.Block, error) {
block, err := sm4.NewCipher(key)
if err != nil {
return nil, err
}
return block, nil
})
return enc.Decrypt(raw, key, nil)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。