需求: 需要10000个不同文件的hash值。
思路:
1. 获取10000个随机数
2. 将这10000个随机数写入文件
3. 依次获取文件的hash值。
补充: windows和linux下获取文件hash的方法:
windows:
命令行输入 certutil -hashfile 文件绝对路径 md5
linux:
md5sum 文件绝对路径
python进行MD5加密:
方式1:
方式2:
完整代码
import random
import hashlib
nums = []
hash_md5 = []
def get_random():
while (len(nums) < 10000):
x = random.uniform(1, 10000)
if x not in nums:
nums.append(x)
def write(k):
with open(r"C:\Users\WIN10\Desktop\hash\1.txt", "w+") as f:
f.write(k)
def hash_num(file_name):
"""
计算文件的md5
:param file_name:
:return:
"""
m = hashlib.md5() # 创建md5对象
with open(file_name, 'rb') as fobj:
while True: # 编码
data = fobj.read(4096)
if not data:
break
m.update(data) # 更新md5对象
return m.hexdigest() # 返回md5对象
if __name__ == '__main__':
# 生成随机数
get_random()
# 写入随机数,并进行md5加密
for i in range(0, len(nums)):
write(str(nums[i]))
x = hash_num(r"C:\Users\WIN10\Desktop\hash\1.txt")
hash_md5.append(x)
# 将加密的结果进行输出到文本上
for j in range(0, len(hash_md5)):
with open(r"C:\Users\WIN10\Desktop\hash\result.txt", "a+") as f:
f.write(hash_md5[j] + '\n')
print("保存个数:" + str(j))