hmac.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package crypto4go
  2. import (
  3. "crypto/hmac"
  4. "crypto/md5"
  5. "crypto/sha1"
  6. "crypto/sha256"
  7. "crypto/sha512"
  8. "encoding/hex"
  9. )
  10. func HmacMD5(data, key []byte) []byte {
  11. var h = hmac.New(md5.New, key)
  12. h.Write(data)
  13. return h.Sum(nil)
  14. }
  15. func HmacMD5String(data, key string) string {
  16. return hex.EncodeToString(HmacMD5([]byte(data), []byte(key)))
  17. }
  18. func HmacSHA1(data, key []byte) []byte {
  19. var h = hmac.New(sha1.New, key)
  20. h.Write(data)
  21. return h.Sum(nil)
  22. }
  23. func HmacSHA1String(data, key string) string {
  24. return hex.EncodeToString(HmacSHA1([]byte(data), []byte(key)))
  25. }
  26. func HmacSHA256(data, key []byte) []byte {
  27. var h = hmac.New(sha256.New, key)
  28. h.Write(data)
  29. return h.Sum(nil)
  30. }
  31. func HmacSHA256String(data, key string) string {
  32. return hex.EncodeToString(HmacSHA256([]byte(data), []byte(key)))
  33. }
  34. func HmacSHA512(data, key []byte) []byte {
  35. var h = hmac.New(sha512.New, key)
  36. h.Write(data)
  37. return h.Sum(nil)
  38. }
  39. func HmacSHA512String(data, key string) string {
  40. return hex.EncodeToString(HmacSHA512([]byte(data), []byte(key)))
  41. }