File size: 621 Bytes
65d3b67 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import base64
SECRET_KEY = b"my-simple-key" # Keep this key short and secret
def xor_encrypt(data: bytes, key: bytes) -> bytes:
return bytes([b ^ key[i % len(key)] for i, b in enumerate(data)])
def encrypt_video_id(video_id: str) -> str:
encrypted = xor_encrypt(video_id.encode(), SECRET_KEY)
return base64.urlsafe_b64encode(encrypted).decode().rstrip("=")
def decrypt_video_id(enc_id: str) -> str:
padded = enc_id + "=" * (-len(enc_id) % 4) # Add padding back
encrypted = base64.urlsafe_b64decode(padded.encode())
decrypted = xor_encrypt(encrypted, SECRET_KEY)
return decrypted.decode() |