github.com/JohanShen/go-utils@v1.1.4-0.20201117124024-901319a2b2a0/utils/encrypt.go (about) 1 package utils 2 3 import ( 4 "crypto/md5" 5 "crypto/sha1" 6 "crypto/sha256" 7 "crypto/sha512" 8 "encoding/base64" 9 "encoding/hex" 10 "fmt" 11 ) 12 13 func Md5(s string) (result string) { 14 m := md5.New() 15 m.Write([]byte(s)) 16 b := m.Sum(nil) 17 result = hex.EncodeToString(b) 18 return 19 } 20 21 func Md5Bytes(p []byte) (result string) { 22 m := md5.New() 23 m.Write(p) 24 b := m.Sum(nil) 25 result = hex.EncodeToString(b) 26 return 27 } 28 29 func Sha1(s string) (result string) { 30 sha := sha1.New() 31 sha.Write([]byte(s)) 32 b := sha.Sum(nil) 33 result = fmt.Sprintf("%x", b) 34 return 35 } 36 37 func Sha1Bytes(p []byte) (result string) { 38 sha := sha1.New() 39 sha.Write(p) 40 b := sha.Sum(nil) 41 result = fmt.Sprintf("%x", b) 42 return 43 } 44 45 func Sha256(s string) (result string) { 46 sha := sha256.New() 47 sha.Write([]byte(s)) 48 b := sha.Sum(nil) 49 result = fmt.Sprintf("%x", b) 50 return 51 } 52 53 func Sha256Bytes(p []byte) (result string) { 54 sha := sha256.New() 55 sha.Write(p) 56 b := sha.Sum(nil) 57 result = fmt.Sprintf("%x", b) 58 return 59 } 60 61 func Sha512(s string) (result string) { 62 sha := sha512.New() 63 sha.Write([]byte(s)) 64 b := sha.Sum(nil) 65 result = fmt.Sprintf("%x", b) 66 return 67 } 68 69 func Sha512Bytes(p []byte) (result string) { 70 sha := sha512.New() 71 sha.Write(p) 72 b := sha.Sum(nil) 73 result = fmt.Sprintf("%x", b) 74 return 75 } 76 77 func Base64Encode(s string) (result string) { 78 result = base64.StdEncoding.EncodeToString([]byte(s)) 79 return 80 } 81 82 func Base64Decode(s string) (string, error) { 83 result, err := base64.StdEncoding.DecodeString(s) 84 if err != nil { 85 return "nil", err 86 } 87 return string(result), nil 88 } 89 90 func Base64EncodeBytes(s []byte) (result []byte) { 91 n := base64.StdEncoding.EncodedLen(len(s)) 92 result = make([]byte, n) 93 base64.StdEncoding.Encode(result, s) 94 return 95 } 96 97 func Base64DecodeBytes(s []byte) (result []byte, err error) { 98 n := base64.StdEncoding.DecodedLen(len(s)) 99 result = make([]byte, n) 100 _, err = base64.StdEncoding.Decode(result, s) 101 if err != nil { 102 return nil, err 103 } 104 return result, nil 105 }