crypto.go 877 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package crypto
  2. import (
  3. "crypto/md5"
  4. "crypto/sha1"
  5. "encoding/base64"
  6. "encoding/hex"
  7. "fmt"
  8. )
  9. // MD5 encode string to md5 string
  10. // php md5
  11. func MD5(str string) string {
  12. data := md5.Sum([]byte(str))
  13. // 将 []byte 转换为 32字符十六进制数
  14. return fmt.Sprintf("%x", data)
  15. }
  16. // Sha1 encode string to sha1 string
  17. // php sha1
  18. func Sha1(str string) string {
  19. hash := sha1.New()
  20. hash.Write([]byte(str))
  21. return hex.EncodeToString(hash.Sum(nil))
  22. }
  23. // Base64Encode encode string to base64 string
  24. // php base64_encode
  25. func Base64Encode(str string) string {
  26. return base64.StdEncoding.EncodeToString([]byte(str))
  27. }
  28. // Base64Decode decode base64 string to normal string
  29. // php base64_decode
  30. func Base64Decode(str string) (string, error) {
  31. data, err := base64.StdEncoding.DecodeString(str)
  32. if err != nil {
  33. return "", err
  34. }
  35. return hex.EncodeToString(data), nil
  36. }