from Crypto.Hash import SHAKE256 def encrypt(secret: bytes, plaintext: bytes): shake = SHAKE256.new(secret) key = shake.read(len(plaintext)) int_key = int.from_bytes(key, "big") int_pt = int.from_bytes(plaintext, "big") int_ct = int_key ^ int_pt return int_ct.to_bytes(len(plaintext), "big") def decrypt(secret: bytes, ciphertext: bytes): shake = SHAKE256.new(secret) key = shake.read(len(ciphertext)) int_key = int.from_bytes(key, "big") int_ct = int.from_bytes(ciphertext, "big") int_pt = int_key ^ int_ct return int_pt.to_bytes(len(ciphertext), "big")
时间: 2024-04-02 16:34:54 浏览: 138
sha-256加密
这段代码看起来是一个加密和解密的函数,使用的是 SHAKE256 的哈希函数。在加密时,将秘密密钥和明文作为输入,生成一个与明文长度相同的密钥,将明文和密钥转换成整数再进行异或操作,最后将结果转换成字节串返回。在解密时,同样使用秘密密钥和密文作为输入,生成与密文长度相同的密钥,将密文和密钥转换成整数再进行异或操作,最后将结果转换成字节串返回。这种加密方式是对称加密,即加密和解密使用相同的密钥。
阅读全文