5 May 2026
Thanks to Pierre Barre there is now an updated version of the script from this post for decrypting the gui logins! Now with Python 3 support! (Yes, I'm old, I used Python 2 for the version version ;)
import base64
import sys
def decrypt(ep_b64, pk_b64):
ep = base64.b64decode(ep_b64).decode('utf-8')
pk = base64.b64decode(pk_b64).decode('utf-8')
res = []
ln = 0
maxlen = 0
offset = 0
for i in range(len(ep)):
if i == 0:
maxlen = ord(ep[i]) - ord(pk[i])
elif i == 1:
offset = ord(ep[i]) - ord(pk[i])
elif i >= offset and ln < maxlen:
res.append(chr(ord(ep[i]) - ord(pk[i])))
ln += 1
return ''.join(res)
def decrypt_base64(encrypted_b64: str, key_b64: str) -> str:
return decrypt(encrypted_b64, key_b64)
if __name__ == "__main__":
if len(sys.argv) != 3:
print(f"Usage: {sys.argv[0]} <encrypted_password_b64> <key_b64>")
sys.exit(1)
encrypted_password_b64 = sys.argv[1]
parent_key_b64 = sys.argv[2]
try:
decrypted = decrypt_base64(encrypted_password_b64, parent_key_b64)
print(decrypted)
except Exception as e:
print(f"Error: {e}")
sys.exit(2)