1 Star 0 Fork 0

lzw7758/go_lib

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
crypto_utils.go 2.67 KB
一键复制 编辑 原始数据 按行查看 历史
lzw7758 提交于 2025-08-11 11:18 +08:00 . feat: 初始化Go工具库 - PHP风格函数集合
package go_lib
import (
"crypto/md5"
"crypto/sha1"
"crypto/sha256"
"crypto/sha512"
"encoding/base64"
"encoding/hex"
"fmt"
"hash/crc32"
)
func Md5(data string) string {
hash := md5.Sum([]byte(data))
return hex.EncodeToString(hash[:])
}
func Md5File(filename string) (string, error) {
content, err := FileGetContents(filename)
if err != nil {
return "", err
}
return Md5(content), nil
}
func Sha1(data string) string {
hash := sha1.Sum([]byte(data))
return hex.EncodeToString(hash[:])
}
func Sha1File(filename string) (string, error) {
content, err := FileGetContents(filename)
if err != nil {
return "", err
}
return Sha1(content), nil
}
func Sha256(data string) string {
hash := sha256.Sum256([]byte(data))
return hex.EncodeToString(hash[:])
}
func Sha256File(filename string) (string, error) {
content, err := FileGetContents(filename)
if err != nil {
return "", err
}
return Sha256(content), nil
}
func Sha512(data string) string {
hash := sha512.Sum512([]byte(data))
return hex.EncodeToString(hash[:])
}
func Sha512File(filename string) (string, error) {
content, err := FileGetContents(filename)
if err != nil {
return "", err
}
return Sha512(content), nil
}
func Base64Encode(data string) string {
return base64.StdEncoding.EncodeToString([]byte(data))
}
func Base64Decode(data string) (string, error) {
decoded, err := base64.StdEncoding.DecodeString(data)
if err != nil {
return "", err
}
return string(decoded), nil
}
func Base64UrlEncode(data string) string {
return base64.URLEncoding.EncodeToString([]byte(data))
}
func Base64UrlDecode(data string) (string, error) {
decoded, err := base64.URLEncoding.DecodeString(data)
if err != nil {
return "", err
}
return string(decoded), nil
}
func HexEncode(data string) string {
return hex.EncodeToString([]byte(data))
}
func HexDecode(data string) (string, error) {
decoded, err := hex.DecodeString(data)
if err != nil {
return "", err
}
return string(decoded), nil
}
func Hash(algorithm, data string) (string, error) {
switch algorithm {
case "md5":
return Md5(data), nil
case "sha1":
return Sha1(data), nil
case "sha256":
return Sha256(data), nil
case "sha512":
return Sha512(data), nil
default:
return "", fmt.Errorf("unsupported hash algorithm: %s", algorithm)
}
}
func HashFile(algorithm, filename string) (string, error) {
content, err := FileGetContents(filename)
if err != nil {
return "", err
}
return Hash(algorithm, content)
}
func Crc32(data string) uint32 {
return crc32.ChecksumIEEE([]byte(data))
}
func Crc32File(filename string) (uint32, error) {
content, err := FileGetContents(filename)
if err != nil {
return 0, err
}
return Crc32(content), nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/lzw7758/go_lib.git
git@gitee.com:lzw7758/go_lib.git
lzw7758
go_lib
go_lib
v1.0.1

搜索帮助