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()