yjp před 2 měsíci
rodič
revize
aeaaa57827
2 změnil soubory, kde provedl 29 přidání a 0 odebrání
  1. 12 0
      encoding/encoding.go
  2. 17 0
      encoding/encoding_test.go

+ 12 - 0
encoding/encoding.go

@@ -5,8 +5,10 @@ import (
 	"crypto/aes"
 	"crypto/cipher"
 	"crypto/md5"
+	"crypto/sha1"
 	"crypto/sha256"
 	"encoding/base64"
+	"encoding/hex"
 	"fmt"
 )
 
@@ -66,6 +68,16 @@ func SHA256(origin string, salt string) string {
 	return fmt.Sprintf("%x", sha256.Sum256([]byte(origin)))
 }
 
+func SHA1(origin string, salt string) string {
+	if salt != "" {
+		origin = origin + salt
+	}
+
+	o := sha1.New()
+	o.Write([]byte(origin))
+	return hex.EncodeToString(o.Sum(nil))
+}
+
 func Base64Encode(content []byte) string {
 	return base64.StdEncoding.EncodeToString(content)
 }

+ 17 - 0
encoding/encoding_test.go

@@ -60,3 +60,20 @@ func TestSHA256(t *testing.T) {
 		t.Fatal("sha256字符串不正确")
 	}
 }
+
+func TestSHA1(t *testing.T) {
+	origin := "foo"
+	salt := "foo-salt"
+
+	sha1Str := SHA1(origin, "")
+
+	if sha1Str != "0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33" {
+		t.Fatal("sha1字符串不正确")
+	}
+
+	sha1WithSaltStr := SHA1(origin, salt)
+
+	if sha1WithSaltStr != "fad8aee9202a46f2b42519e09e845b939ce3936a" {
+		t.Fatal("sha1字符串不正确")
+	}
+}