fork download
  1. import base64
  2.  
  3. AKEY = 'rpa-creds' # AES key must be either 16, 24, or 32 bytes long
  4.  
  5.  
  6. def encode(key, clear):
  7. """
  8. Encode username and passwords using the key available.
  9. :param key:
  10. :param clear:
  11. :return:
  12. """
  13. enc = []
  14. for i in range(len(clear)):
  15. key_c = key[i % len(key)]
  16. enc_c = (ord(clear[i]) + ord(key_c)) % 256
  17. enc.append(enc_c)
  18. return base64.urlsafe_b64encode(bytes(enc))
  19.  
  20.  
  21. def decode(key, enc):
  22. """
  23. Decode encrypted username and password values.
  24. :param key:
  25. :param enc:
  26. :return:
  27. """
  28. dec = []
  29. enc = base64.urlsafe_b64decode(enc)
  30. for i in range(len(enc)):
  31. key_c = key[i % len(key)]
  32. dec_c = chr((256 + enc[i] - ord(key_c)) % 256)
  33. dec.append(dec_c)
  34. return "".join(dec)
  35.  
  36.  
  37. val1 = encode("rpa-client-keysssssss", "TYMravb_zfS8nHsw")
  38. print(val1)
  39. val2 = decode("rpa-creds", "xsmun8Tox8Ps1rRl0brY2w==")
  40. print(val2)
  41.  
Success #stdin #stdout 0.04s 9588KB
stdin
Standard input is empty
stdout
b'xsmun8Tiy8To2oCj08Hm6g=='
TYMravb_ydD¤Wfv