hash.go 901 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package myth
  2. import (
  3. "crypto/hmac"
  4. "crypto/md5"
  5. "crypto/sha1"
  6. "crypto/sha256"
  7. "crypto/sha512"
  8. "encoding/hex"
  9. )
  10. // SHA512 hash
  11. func SHA512(data []byte) ([]byte, error) {
  12. hash := sha512.New()
  13. _, err := hash.Write(data)
  14. if err != nil {
  15. return nil, err
  16. }
  17. return hash.Sum(nil), nil
  18. }
  19. func HmacSHA256(k, s []byte) ([]byte, error) {
  20. hash := hmac.New(sha256.New, k)
  21. _, err := hash.Write(s)
  22. if err != nil {
  23. return nil, err
  24. }
  25. return hash.Sum(nil), nil
  26. }
  27. // SHA256 hash string
  28. func SHA256(data string) string {
  29. hash := sha256.New()
  30. hash.Write([]byte(data))
  31. return hex.EncodeToString(hash.Sum(nil))
  32. }
  33. // MD5 hash string
  34. func MD5(data string) string {
  35. hash := md5.New()
  36. hash.Write([]byte(data))
  37. return hex.EncodeToString(hash.Sum(nil))
  38. }
  39. // SHA1 hash string
  40. func SHA1(data string) string {
  41. hash := sha1.New()
  42. hash.Write([]byte(data))
  43. return hex.EncodeToString(hash.Sum(nil))
  44. }