代码拉取完成,页面将自动刷新
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
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。