defnative_mix(data): data = bytearray(data) s = 0x5d for i inrange(len(data)): bit = ((s >> 3) ^ (s >> 2) ^ (s >> 5) ^ s) & 1 s = ((bit << 7) | (s >> 1)) & 0xff data[i] ^= (i * 7 + s) & 0xff returnbytes(data)
defcustom_b64_decode(s, alphabet): rev = {c: i for i, c inenumerate(alphabet)} out = bytearray() bits = 0 val = 0 for ch in s: if ch == "=": break val = (val << 6) | rev[ch] bits += 6 if bits >= 8: bits -= 8 out.append((val >> bits) & 0xff) returnbytes(out)
defcustom_b64_decode(s, alphabet): rev = {c: i for i, c inenumerate(alphabet)} out = bytearray() bits = 0 val = 0 for ch in s: if ch == "=": break val = (val << 6) | rev[ch] bits += 6 if bits >= 8: bits -= 8 out.append((val >> bits) & 0xff) returnbytes(out)
defnative_mix(data): data = bytearray(data) s = 0x5d for i inrange(len(data)): bit = ((s >> 3) ^ (s >> 2) ^ (s >> 5) ^ s) & 1 s = ((bit << 7) | (s >> 1)) & 0xff data[i] ^= (i * 7 + s) & 0xff returnbytes(data)
definverse_java_transform(out, shifts, mask): inp = bytearray(len(out)) prev = 0 for i, ob inenumerate(out): v = (ob - prev - i * 3) & 0xff v ^= mask[i % len(mask)] v = ((v - 32 - shifts[i % len(shifts)]) % 95) + 32 inp[i] = v prev = ob returnbytes(inp)