Skip to content
CCint3 edited this page Aug 29, 2019 · 3 revisions

常用的加解密和HASH算法

unpadding

def unpadding(data: bytes):
    padding = data[len(data) - 1]
    return data[: len(data) - padding]

PKCS5Padding和PKCS7Padding

在PKCS5Padding中,明确定义Block的大小是8位,而在PKCS7Padding定义中,对于块的大小是不确定的,可以在1-0xFF之间;填充值的算法都是一样的。

def pkcs5_padding(data: bytes, block_size: int):
    padding = block_size - len(data) % block_size
    return data + (chr(padding) * padding).encode()

ZeroPadding

def zero_padding(data: bytes, block_size: int):
    padding = block_size - len(data) % block_size
    return data + b'\x00' * (padding - 1) + chr(padding).encode()

DES

RSA

Focus Make Things

Clone this wiki locally