stringutil.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package utils
  2. import (
  3. "crypto/md5"
  4. "encoding/hex"
  5. "fmt"
  6. "github.com/dchest/captcha"
  7. "math/rand"
  8. "strings"
  9. "time"
  10. )
  11. func FilterXSS(str string) string {
  12. str = strings.Replace(str, "<", "&#60;", -1)
  13. str = strings.Replace(str, ">", "&#62;", -1)
  14. str = strings.Replace(str, "%3C", "&#60;", -1)
  15. str = strings.Replace(str, "%3E", "&#62;", -1)
  16. str = strings.Replace(str, "expression", "expression", -1)
  17. str = strings.Replace(str, "javascript", "javascript", -1)
  18. return str
  19. }
  20. func MakeSimpleCaptcha(n int) string {
  21. var idChars = []byte("0123456789")
  22. b := captcha.RandomDigits(n)
  23. for i, c := range b {
  24. b[i] = idChars[c]
  25. }
  26. return string(b)
  27. }
  28. /**
  29. 获取当前时间的毫秒值
  30. */
  31. func Now4Millis() int64 {
  32. return time.Now().UnixNano() / 1e6
  33. }
  34. /*产生n以内的随机数*/
  35. func MakeIntRand(n int) int {
  36. rand.Seed(time.Now().UnixNano())
  37. return rand.Intn(n)
  38. }
  39. //生成32位md5字串
  40. func GetMd5String(s string) string {
  41. h := md5.New()
  42. h.Write([]byte(s))
  43. return hex.EncodeToString(h.Sum(nil))
  44. }
  45. func GenerateSimpleToken() string {
  46. rand.Seed(time.Now().UnixNano())
  47. str := fmt.Sprintf("%d%d", time.Now().UnixNano(), rand.Intn(999999))
  48. h := md5.New()
  49. h.Write([]byte(str))
  50. return hex.EncodeToString(h.Sum(nil))
  51. }
  52. //var pool = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@#$"