1 Star 0 Fork 0

csingo/cHelper

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Encrypt.go 1.45 KB
一键复制 编辑 原始数据 按行查看 历史
joe 提交于 2024-12-11 10:58 +08:00 . update
package cHelper
import (
"crypto/aes"
"crypto/cipher"
"crypto/md5"
"crypto/sha1"
"encoding/base64"
"encoding/hex"
"fmt"
"golang.org/x/crypto/bcrypt"
)
func Md5(data []byte) string {
return fmt.Sprintf("%x", md5.Sum(data))
}
func SHA1(data string) string {
s := sha1.New()
s.Write([]byte(data))
return hex.EncodeToString(s.Sum(nil))
}
func PasswordHash(password string) (hash string, err error) {
hashBytes, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
hash = string(hashBytes)
return
}
func PasswordVerify(password, hash string) bool {
err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
return err == nil
}
func AESEncrypt(data, key string) (result string, err error) {
keyMD5 := Md5([]byte(key))
keyMD5Bytes := []byte(keyMD5)
iv := keyMD5Bytes[:aes.BlockSize]
en := make([]byte, len(data))
block, err := aes.NewCipher(keyMD5Bytes)
if err != nil {
return
}
s := cipher.NewCFBEncrypter(block, iv)
s.XORKeyStream(en, []byte(data))
result = base64.StdEncoding.EncodeToString(en)
return
}
func AESDecrypt(data, key string) (result string, err error) {
keyMD5 := Md5([]byte(key))
keyMD5Bytes := []byte(keyMD5)
iv := keyMD5Bytes[:aes.BlockSize]
en, err := base64.StdEncoding.DecodeString(data)
if err != nil {
return
}
block, err := aes.NewCipher([]byte(keyMD5))
if err != nil {
return
}
s := cipher.NewCFBDecrypter(block, iv)
s.XORKeyStream(en, en)
result = string(en)
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/csingo/cHelper.git
git@gitee.com:csingo/cHelper.git
csingo
cHelper
cHelper
v0.4.32

搜索帮助