Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac258d4f64 |
@ -1,5 +1,8 @@
|
||||
# Changelog: @go/crypto
|
||||
|
||||
## v1.5.4 (2026-06-21)
|
||||
- **命名规范**: SHA 缩写全大写,`Sha1`/`Sha256`/`Sha512` → `SHA1`/`SHA256`/`SHA512`,HMAC 系列同步修正为 `HMACSHA1`/`HMACSHA256`/`HMACSHA512`。
|
||||
|
||||
## v1.5.3 (2026-06-21)
|
||||
- **重构与错误堆栈支持**:
|
||||
- 重构 `js_export.go`,将 `Encrypt`、`Decrypt` 等匿名函数以及 `Generate*KeyPair` 类接口改写为具名函数,并动态使用 `jsmod.MakeError` 包裹返回的 error。
|
||||
|
||||
@ -49,8 +49,8 @@
|
||||
|
||||
### 哈希算法 (Hash)
|
||||
- `func MD5(data []byte) []byte`
|
||||
- `func Sha256(data []byte) []byte`
|
||||
- `func HmacSha256(data, key []byte) []byte`
|
||||
- `func SHA256(data []byte) []byte`
|
||||
- `func HMACSHA256(data, key []byte) []byte`
|
||||
|
||||
## 📦 安装
|
||||
|
||||
|
||||
2
TEST.md
2
TEST.md
@ -1,7 +1,7 @@
|
||||
# Test Report: @go/crypto
|
||||
|
||||
## 📋 测试概览
|
||||
- **测试时间**: 2026-05-07
|
||||
- **测试时间**: 2026-06-21
|
||||
- **测试环境**: darwin/amd64
|
||||
- **Go 版本**: 1.25.0
|
||||
|
||||
|
||||
36
hash.go
36
hash.go
@ -35,8 +35,8 @@ func MD5ToURLBase64(data []byte) string {
|
||||
return encoding.URLBase64(MD5(data))
|
||||
}
|
||||
|
||||
// Sha1 系列
|
||||
func Sha1(data ...[]byte) []byte {
|
||||
// SHA1 系列
|
||||
func SHA1(data ...[]byte) []byte {
|
||||
h := sha1.New()
|
||||
for _, v := range data {
|
||||
h.Write(v)
|
||||
@ -44,12 +44,12 @@ func Sha1(data ...[]byte) []byte {
|
||||
return h.Sum(nil)
|
||||
}
|
||||
|
||||
func Sha1ToHex(data []byte) string { return encoding.Hex(Sha1(data)) }
|
||||
func Sha1ToBase64(data []byte) string { return encoding.Base64(Sha1(data)) }
|
||||
func Sha1ToURLBase64(data []byte) string { return encoding.URLBase64(Sha1(data)) }
|
||||
func SHA1ToHex(data []byte) string { return encoding.Hex(SHA1(data)) }
|
||||
func SHA1ToBase64(data []byte) string { return encoding.Base64(SHA1(data)) }
|
||||
func SHA1ToURLBase64(data []byte) string { return encoding.URLBase64(SHA1(data)) }
|
||||
|
||||
// Sha256 系列
|
||||
func Sha256(data ...[]byte) []byte {
|
||||
// SHA256 系列
|
||||
func SHA256(data ...[]byte) []byte {
|
||||
h := sha256.New()
|
||||
for _, v := range data {
|
||||
h.Write(v)
|
||||
@ -57,12 +57,12 @@ func Sha256(data ...[]byte) []byte {
|
||||
return h.Sum(nil)
|
||||
}
|
||||
|
||||
func Sha256ToHex(data []byte) string { return encoding.Hex(Sha256(data)) }
|
||||
func Sha256ToBase64(data []byte) string { return encoding.Base64(Sha256(data)) }
|
||||
func Sha256ToURLBase64(data []byte) string { return encoding.URLBase64(Sha256(data)) }
|
||||
func SHA256ToHex(data []byte) string { return encoding.Hex(SHA256(data)) }
|
||||
func SHA256ToBase64(data []byte) string { return encoding.Base64(SHA256(data)) }
|
||||
func SHA256ToURLBase64(data []byte) string { return encoding.URLBase64(SHA256(data)) }
|
||||
|
||||
// Sha512 系列
|
||||
func Sha512(data ...[]byte) []byte {
|
||||
// SHA512 系列
|
||||
func SHA512(data ...[]byte) []byte {
|
||||
h := sha512.New()
|
||||
for _, v := range data {
|
||||
h.Write(v)
|
||||
@ -70,9 +70,9 @@ func Sha512(data ...[]byte) []byte {
|
||||
return h.Sum(nil)
|
||||
}
|
||||
|
||||
func Sha512ToHex(data []byte) string { return encoding.Hex(Sha512(data)) }
|
||||
func Sha512ToBase64(data []byte) string { return encoding.Base64(Sha512(data)) }
|
||||
func Sha512ToURLBase64(data []byte) string { return encoding.URLBase64(Sha512(data)) }
|
||||
func SHA512ToHex(data []byte) string { return encoding.Hex(SHA512(data)) }
|
||||
func SHA512ToBase64(data []byte) string { return encoding.Base64(SHA512(data)) }
|
||||
func SHA512ToURLBase64(data []byte) string { return encoding.URLBase64(SHA512(data)) }
|
||||
|
||||
// HMAC 系列
|
||||
func HMACMD5(key []byte, data ...[]byte) []byte {
|
||||
@ -83,7 +83,7 @@ func HMACMD5(key []byte, data ...[]byte) []byte {
|
||||
return h.Sum(nil)
|
||||
}
|
||||
|
||||
func HMACSha1(key []byte, data ...[]byte) []byte {
|
||||
func HMACSHA1(key []byte, data ...[]byte) []byte {
|
||||
h := hmac.New(sha1.New, key)
|
||||
for _, v := range data {
|
||||
h.Write(v)
|
||||
@ -91,7 +91,7 @@ func HMACSha1(key []byte, data ...[]byte) []byte {
|
||||
return h.Sum(nil)
|
||||
}
|
||||
|
||||
func HMACSha256(key []byte, data ...[]byte) []byte {
|
||||
func HMACSHA256(key []byte, data ...[]byte) []byte {
|
||||
h := hmac.New(sha256.New, key)
|
||||
for _, v := range data {
|
||||
h.Write(v)
|
||||
@ -99,7 +99,7 @@ func HMACSha256(key []byte, data ...[]byte) []byte {
|
||||
return h.Sum(nil)
|
||||
}
|
||||
|
||||
func HMACSha512(key []byte, data ...[]byte) []byte {
|
||||
func HMACSHA512(key []byte, data ...[]byte) []byte {
|
||||
h := hmac.New(sha512.New, key)
|
||||
for _, v := range data {
|
||||
h.Write(v)
|
||||
|
||||
@ -19,17 +19,17 @@ func TestHashCompatibility(t *testing.T) {
|
||||
|
||||
// SHA256
|
||||
h2 := sha256.Sum256(data)
|
||||
if !bytes.Equal(crypto.Sha256(data), h2[:]) { t.Error("Sha256 mismatch") }
|
||||
if !bytes.Equal(crypto.SHA256(data), h2[:]) { t.Error("SHA256 mismatch") }
|
||||
|
||||
// HMAC
|
||||
key := []byte("key")
|
||||
mac := hmac.New(sha256.New, key)
|
||||
mac.Write(data)
|
||||
if !bytes.Equal(crypto.HMACSha256(key, data), mac.Sum(nil)) { t.Error("HMACSha256 mismatch") }
|
||||
if !bytes.Equal(crypto.HMACSHA256(key, data), mac.Sum(nil)) { t.Error("HMACSHA256 mismatch") }
|
||||
}
|
||||
|
||||
func TestHashString(t *testing.T) {
|
||||
s := []byte("hello")
|
||||
if crypto.MD5ToHex(s) == "" { t.Error("MD5ToHex empty") }
|
||||
if crypto.Sha256ToBase64(s) == "" { t.Error("Sha256ToBase64 empty") }
|
||||
if crypto.SHA256ToBase64(s) == "" { t.Error("SHA256ToBase64 empty") }
|
||||
}
|
||||
|
||||
30
js_export.go
30
js_export.go
@ -11,24 +11,24 @@ func init() {
|
||||
"MD5ToHex": MD5ToHex,
|
||||
"MD5ToBase64": MD5ToBase64,
|
||||
"MD5ToURLBase64": MD5ToURLBase64,
|
||||
"Sha1": Sha1,
|
||||
"Sha1ToHex": Sha1ToHex,
|
||||
"Sha1ToBase64": Sha1ToBase64,
|
||||
"Sha1ToURLBase64": Sha1ToURLBase64,
|
||||
"Sha256": Sha256,
|
||||
"Sha256ToHex": Sha256ToHex,
|
||||
"Sha256ToBase64": Sha256ToBase64,
|
||||
"Sha256ToURLBase64": Sha256ToURLBase64,
|
||||
"Sha512": Sha512,
|
||||
"Sha512ToHex": Sha512ToHex,
|
||||
"Sha512ToBase64": Sha512ToBase64,
|
||||
"Sha512ToURLBase64": Sha512ToURLBase64,
|
||||
"SHA1": SHA1,
|
||||
"SHA1ToHex": SHA1ToHex,
|
||||
"SHA1ToBase64": SHA1ToBase64,
|
||||
"SHA1ToURLBase64": SHA1ToURLBase64,
|
||||
"SHA256": SHA256,
|
||||
"SHA256ToHex": SHA256ToHex,
|
||||
"SHA256ToBase64": SHA256ToBase64,
|
||||
"SHA256ToURLBase64": SHA256ToURLBase64,
|
||||
"SHA512": SHA512,
|
||||
"SHA512ToHex": SHA512ToHex,
|
||||
"SHA512ToBase64": SHA512ToBase64,
|
||||
"SHA512ToURLBase64": SHA512ToURLBase64,
|
||||
|
||||
// HMAC
|
||||
"HMACMD5": HMACMD5,
|
||||
"HMACSha1": HMACSha1,
|
||||
"HMACSha256": HMACSha256,
|
||||
"HMACSha512": HMACSha512,
|
||||
"HMACSHA1": HMACSHA1,
|
||||
"HMACSHA256": HMACSHA256,
|
||||
"HMACSHA512": HMACSHA512,
|
||||
|
||||
// Token
|
||||
"MakeToken": MakeToken,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user