示例#1
0
文件: aes.py 项目: martijnat/crypturd
def decrypt_256_ecb(data, key, padding=True):
    key = fixed_length_key(key, 32)
    r = ""
    for i in range(0, len(data), 16):
        r += aes256dec(data[i:i + 16], key)
    if padding:
        return pkcs7.remove_padding(r)
    else:
        return r
示例#2
0
def decrypt_raw(data, key, iv="\0" * 32):
    "Decrypt data"
    key = fixed_length_key(key, 32)
    plaintext = ""
    for i in range(0, len(data), 32):
        block = data[i:i + 32]
        iv = hash(xor_str(iv, key))
        plaintext += xor_str(iv, block)
    plaintext = remove_padding(plaintext)
    return plaintext
示例#3
0
文件: aes.py 项目: martijnat/crypturd
def decrypt_256_cbc(data, key, padding=True, gen_iv=True):
    key = fixed_length_key(key, 32)
    r = ""
    if gen_iv:
        iv = data[:16]
        data = data[16:]
    else:
        iv = "\0" * 16

    for i in range(0, len(data), 16):
        cipherblock = data[i:i + 16]
        r += xor_str(aes256dec(cipherblock, key), iv)
        iv = cipherblock

    if padding:
        return pkcs7.remove_padding(r)
    else:
        return r