用python的pycrypto库,实现DES加密二进制文件并统计程序运行时间

程序

  • 和AES的区别在于库不同,密钥和初始向量的长度不同;
# coding:utf-8
from Crypto.Cipher import DES  # DES库
import os
import time

cryptor = DES.new(
    b'01234567',
    DES.MODE_CBC,  # 第一个参数为密钥, 第二个参数为操作模式, 第三个参数为初始向量IV;
    b'01234567')  # b''表示以字节为单位, list和str函数用于bytes和str类型的转换;

# 待加密文件的路径, 文件在windows下用fsutil工具生成;
filepath = 'C:\\Users\\VikingsWu\\Desktop\\test.txt'
fp = open(filepath, 'rb')  # 文件是二进制格式, 设置文件句柄;
file_size = os.path.getsize(filepath)  # 计算二进制文件的大小

msg = fp.read()  # 读入文件, msg是byte list类型;
msg_size = len(msg)  # 计算读入文件的长度;

begin_time = time.perf_counter()
ciphertext = cryptor.encrypt(msg)  # 加密消息;
end_time = time.perf_counter()
run_time = end_time - begin_time  # 计算运算时间;
print(run_time)

ciphertext_size = len(ciphertext)  # 计算加密结果的长度, 密文和明文应当一样长;
print(ciphertext)

结果

  • 从运算时长来看,加密相同长度数据时,DES的运算速度更慢;
    在这里插入图片描述
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值