key.go 774 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package crypto4go
  2. import (
  3. "bytes"
  4. "strings"
  5. )
  6. func formatKey(raw, prefix, suffix string, lineCount int) []byte {
  7. if raw == "" {
  8. return nil
  9. }
  10. raw = strings.Replace(raw, prefix, "", 1)
  11. raw = strings.Replace(raw, suffix, "", 1)
  12. raw = strings.Replace(raw, " ", "", -1)
  13. raw = strings.Replace(raw, "\n", "", -1)
  14. raw = strings.Replace(raw, "\r", "", -1)
  15. raw = strings.Replace(raw, "\t", "", -1)
  16. var sl = len(raw)
  17. var c = sl / lineCount
  18. if sl%lineCount > 0 {
  19. c = c + 1
  20. }
  21. var buf bytes.Buffer
  22. buf.WriteString(prefix + "\n")
  23. for i := 0; i < c; i++ {
  24. var b = i * lineCount
  25. var e = b + lineCount
  26. if e > sl {
  27. buf.WriteString(raw[b:])
  28. } else {
  29. buf.WriteString(raw[b:e])
  30. }
  31. buf.WriteString("\n")
  32. }
  33. buf.WriteString(suffix)
  34. return buf.Bytes()
  35. }