crypto.go 801 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package mhayaCrypto
  2. import (
  3. "crypto/md5"
  4. "encoding/base64"
  5. "fmt"
  6. "hash/crc32"
  7. )
  8. func MD5(value string) string {
  9. data := []byte(value)
  10. return MD5WithBytes(data)
  11. }
  12. func MD5WithBytes(bytes []byte) string {
  13. has := md5.Sum(bytes)
  14. return fmt.Sprintf("%x", has)
  15. }
  16. func Base64Encode(value string) string {
  17. data := []byte(value)
  18. return base64.StdEncoding.EncodeToString(data)
  19. }
  20. func Base64Decode(value string) (string, error) {
  21. data, err := base64.StdEncoding.DecodeString(value)
  22. if err != nil {
  23. return "", err
  24. }
  25. return string(data), nil
  26. }
  27. func Base64DecodeBytes(value string) ([]byte, error) {
  28. data, err := base64.StdEncoding.DecodeString(value)
  29. if err != nil {
  30. return nil, err
  31. }
  32. return data, nil
  33. }
  34. func CRC32(value string) int {
  35. return int(crc32.ChecksumIEEE([]byte(value)))
  36. }