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  }