obfuscate.go 675 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package internal
  2. import (
  3. "encoding/base64"
  4. "errors"
  5. )
  6. func deobfuscate(in string, key []byte) ([]byte, error) {
  7. if len(key) == 0 {
  8. return nil, errors.New("key cannot be zero length")
  9. }
  10. decoded, err := base64.StdEncoding.DecodeString(in)
  11. if err != nil {
  12. return nil, err
  13. }
  14. out := make([]byte, len(decoded))
  15. for i, c := range decoded {
  16. out[i] = c ^ key[i%len(key)]
  17. }
  18. return out, nil
  19. }
  20. func obfuscate(in, key []byte) (string, error) {
  21. if len(key) == 0 {
  22. return "", errors.New("key cannot be zero length")
  23. }
  24. out := make([]byte, len(in))
  25. for i, c := range in {
  26. out[i] = c ^ key[i%len(key)]
  27. }
  28. return base64.StdEncoding.EncodeToString(out), nil
  29. }