Утилита кодировки
Some checks failed
CI / backend (push) Failing after 8s
CI / frontend (push) Failing after 4s

This commit is contained in:
2025-12-01 11:47:20 +00:00
parent 6232b79ffa
commit adbf40240c

View File

@@ -2,8 +2,12 @@ from typing import Dict
# Таблица Base64-подобного варианта
VariantBase64Table: str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
VariantBase64Dict: Dict[int, str] = {i: VariantBase64Table[i] for i in range(len(VariantBase64Table))}
VariantBase64ReverseDict: Dict[str, int] = {VariantBase64Table[i]: i for i in range(len(VariantBase64Table))}
VariantBase64Dict: Dict[int, str] = {
i: VariantBase64Table[i] for i in range(len(VariantBase64Table))
}
VariantBase64ReverseDict: Dict[str, int] = {
VariantBase64Table[i]: i for i in range(len(VariantBase64Table))
}
def variant_base64_encode(bs: bytes) -> bytes:
@@ -33,7 +37,8 @@ def variant_base64_encode(bs: bytes) -> bytes:
b: bytes = bs[-left_bytes:]
coding_int: int = int.from_bytes(b, "little")
block: str = "".join(
VariantBase64Dict[(coding_int >> shift) & 0x3F] for shift in range(0, left_bytes*8 + 1, 6)
VariantBase64Dict[(coding_int >> shift) & 0x3F]
for shift in range(0, left_bytes*8 + 1, 6)
)
result.extend(block.encode("ascii"))