from hashlib import md5
def md5_file(name):
m = md5()
a_file = open(name, 'rb') #需缺塌漏要使用二进制格式读取文件内容
m.update(a_file.read())
a_file.close()
return m.hexdigest()
if __main__ == '__init__':
print md5_file('d:/test.txt')
大文件速度更快一点的方式
#!/usr/bin/衫散python
#encoding=utf-8
import io
import sys
import hashlib
import string
def printUsage():
print ('''''伏烂Usage: [python] pymd5sum.py ''')
def main():
if(sys.argv.__len__()==2):
#print(sys.argv[1])
m = hashlib.md5()
file = io.FileIO(sys.argv[1],'r')
bytes = file.read(1024)
while(bytes != b''):
m.update(bytes)
bytes = file.read(1024)
file.close()
#md5value = ""
md5value = m.hexdigest()
print(md5value+"\t"+sys.argv[1])
#dest = io.FileIO(sys.argv[1]+".CHECKSUM.md5",'w')
#dest.write(md5value)
#dest.close()
else:
printUsage()
main()
import stringdef kaisa(s, k): #定义函数 接受一个字符串s 和 一个偏移量k
lower = string.ascii_lowercase #小写字母
upper = string.ascii_uppercase #大写字母
before = string.ascii_letters #无偏移的字母顺序 小写+大隐游写
after = lower[k:] + lower[:k] + upper[k:] + upper[:k] #偏移后的字母顺序 还是小写+大写
#分别把小写字母和大写字母偏移后灶伏销再加到一起
table = ''.maketrans(before, after) #创建映射表
return s.translate(table) #对s进行偏移 即加密
s = input('请输入一个字符串:'厅睁)
k = int(input('请输入一个整数密钥:'))
print(kaisa(s, k))
调用此函数
可以给db文件添加密码。在Python中异或 *** 作符为,^,也可以记作XOR。按位异或的意思是。相帆兄同值异或为0,不同值异或为1.具体来讲,有四种可能,0^0=0,0^1=1,1^0=1,1^1=0。我们还可总结出规律(A为0或1),0和A异或为A本身。1和A异或为A反。
加密态核袭 *** 作,首先将文件转换成二进制数,再生成与该二进制数等长的随机密钥,将二进制数与密钥进行异氏森或 *** 作,得到加密后的二进制数。解密 *** 作,将加密后的二进制程序与密钥进行异或 *** 作,就得到原二进制数,最后将原二进制数恢复成文本文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)