跳转至

aes

AESCipher(key)

Bases: object

Source code in iflearner/communication/peer/aes.py
def __init__(self, key: str) -> None:
    self.bs = AES.block_size
    self.key = hashlib.sha256(key.encode()).digest()

decrypt(enc)

Decrypt data

Source code in iflearner/communication/peer/aes.py
def decrypt(self, enc: List) -> Any:
    """Decrypt data"""

    enc = base64.b64decode(enc)
    iv = enc[: AES.block_size]
    cipher = AES.new(self.key, AES.MODE_CBC, iv)
    return self._unpad(cipher.decrypt(enc[AES.block_size :])).decode("utf-8")

encrypt(raw)

Encrypt string to bytes

Source code in iflearner/communication/peer/aes.py
def encrypt(self, raw: str) -> bytes:
    """Encrypt string to bytes"""

    raw = self._pad(raw)
    iv = Random.new().read(AES.block_size)
    cipher = AES.new(self.key, AES.MODE_CBC, iv)
    return base64.b64encode(iv + cipher.encrypt(raw.encode()))