补充完成下列DES加密算法:实现DES加密算法:pythonDES加密算法实现from typing import List初始置换表IP = 58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 1
半部分进行异或 left_xor = xor(binary_list_to_str(left), binary_list_to_str(right_permuted)) left_xor = binary_str_to_list(left_xor)
更新左右半部分
left = right right = left_xor
将左右半部分交换
left, right = right, left
将左右半部分合并
data = left + right
将数据进行逆置换
data = inverse_permutation(data) return data
加密一个字符串 def encrypt(s: str, key: str) -> str:
将字符串转换为二进制字符串
s_binary = str_to_binary_str(s)
将密钥转换为二进制字符串
key_binary = str_to_binary_str(key)
将二进制字符串转换为列表形式
s_list = binary_str_to_list(s_binary) key_list = binary_str_to_list(key_binary)
生成子密钥
subkeys = generate_subkeys(key_list)
对数据进行分块,每块64位
blocks = [s_list[i:i+64] for i in range(0, len(s_list), 64)]
对每个块进行加密
encrypted_blocks = [encrypt_block(block, subkeys) for block in blocks]
将加密后的块合并为一个列表
encrypted_list = [c for block in encrypted_blocks for c in block]
将加密后的列表转换为二进制字符串
encrypted_binary = binary_list_to_str(encrypted_list)
将二
原文地址: https://www.cveoy.top/t/topic/hhXW 著作权归作者所有。请勿转载和采集!