hash.go 713 B

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