加密哈希
SHA-256 和 MD5 哈希计算
加密哈希
xUtil.Encryption() 提供 SHA-256 和 MD5 哈希计算函数。
import xUtil "github.com/xiaolfeng/bamboo-base-go/common/utility"入口函数
func Encryption() *pack.EncryptionSHA-256 哈希
SHA256
计算字符串的 SHA-256 哈希:
func (e *Encryption) SHA256(data string) string返回: 64 位小写十六进制字符串。
hash := xUtil.Encryption().SHA256("password123")
// "ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f"SHA256Bytes
计算字节切片的 SHA-256 哈希:
func (e *Encryption) SHA256Bytes(data []byte) stringdata := []byte("password123")
hash := xUtil.Encryption().SHA256Bytes(data)MD5 哈希
MD5
计算字符串的 MD5 哈希:
func (e *Encryption) MD5(str string) string返回: 32 位小写十六进制字符串。
xUtil.Encryption().MD5("password123")
// "482c811da5d5b4bc632efdea819417a"MD5Bytes
计算字节切片的 MD5 哈希:
func (e *Encryption) MD5Bytes(data []byte) stringdata := []byte("password123")
hash := xUtil.Encryption().MD5Bytes(data)使用场景
文件完整性校验
func (s *FileService) CheckIntegrity(filePath string) (bool, error) {
data, err := os.ReadFile(filePath)
if err != nil {
return false, err
}
// 计算文件 SHA-256
actual := xUtil.Encryption().SHA256Bytes(data)
// 从数据库获取预期的哈希值...
expected := "ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f"
return actual == expected, nil
}密码存储(不推荐)
// [!code warning]
// 警告:MD5 不适合用于密码存储,请使用 xUtil.Password() 进行密码加密
hash := xUtil.Encryption().MD5("password123") // 仅用于演示安全说明
| 算法 | 输出长度 | 用途 | 安全性 |
|---|---|---|---|
| SHA-256 | 64 字符 | 数据签名、文件校验 | 高 |
| MD5 | 32 字符 | 非安全场景的快速校验 | 低(易碰撞) |
重要: MD5 不适合用于密码存储或安全签名,请使用
xUtil.Password()进行密码加密。