python生成文件md5_Python生成文件的MD5和sha1

生成文件的MD5和sha1

#coding=UTF-8

def fil_changefileext(filename,extname=''):

# FIL ChangeFileExt 改变文件扩展名

# filename 输入的文件路径名

# extname='' 要更改分扩展名,如 .txt

import os

try:

if extname[0]<>'.':

extname='.'+extname

except:

extname=''

if os.path.splitext(filename)[1]=='':

uouttxt=filename+'.'+extname

elif os.path.splitext(filename)[1]=='.':

uouttxt=filename+extname

else:

uouttxt=filename[:0-len(os.path.splitext(filename)[1])]+extname

return uouttxt

def fil_str2file(fstr,filename):

# FIL STR2File 把字符串保存到文件

try:

outfile=open(filename,'w')

outfile.writelines(fstr)

outfile.close()

return True

except:

return False

#系统主程序开始

#-------------------------------------------------------

if __name__ == '__main__':

import os,sys,math

# if len(sys.argv)==1:sys.argv.append(r'c:\FreeNAS-8.0.4-RELEASE-x64.iso')

if len(sys.argv)>1:

filepathname=sys.argv[1]

if os.path.isfile(filepathname) :

fmaxs = os.path.getsize(filepathname)+0.00

fpos = 0.00

ppos=0

pmax=50

pjy=0

fmd5=fil_changefileext(filepathname,'.md5')

fsha1=fil_changefileext(filepathname,'.sha')

ffm=os.path.basename(filepathname)

#开始处理

print 'Program Runing "'+filepathname+'" ...'

import hashlib

try:

umd5str = hashlib.md5()

usha1str = hashlib.sha1()

xfilepathname=unicode(filepathname,'utf8')

#需要使用二进制格式读取文件内容

ufile = file(xfilepathname,'rb')

while True:

datas = ufile.read(1024*512)

if not datas: break

umd5str.update( datas )

usha1str.update( datas )

fpos=fpos+1024*512

ppos=int(math.floor(fpos / fmaxs * 50))

pposbfh=int(math.floor(fpos / fmaxs * 100))

#打印进度条

if pjy<>ppos: print '['+'*'*ppos +'='*(pmax-ppos)+'] '+str(pposbfh) +'%'

#打印进度问题未解决,不知道print函数怎么退回到行首覆盖输出,不换行我倒是知道,加个“,”

pjy=ppos

uoutstrmd5=str(umd5str.hexdigest())

uoutstrsha1=str(usha1str.hexdigest())

ufile.close()

print ''

fil_str2file(uoutstrmd5+' *'+ffm+'\n',fmd5)

fil_str2file(uoutstrsha1+' *'+ffm+'\n',fsha1)

print 'Task is completed !' + r' [ XingHe Studio File to MD5 and SHA1 ]'

except:

print 'Error !' + r' [ XingHe Studio File to MD5 and SHA1 ]'

else:

print 'File "'+filepathname+'" not exist!'+ r' [ XingHe Studio File to MD5 and SHA1 ]'

else:

print r' [ XingHe Studio File to MD5 and SHA1 ]'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
生成文件的SHA256哈希值,你可以使用 hashlib 库。首先,你需要以二进制形式打开并读取文件。接下来,构造一个 SHA256 哈希生成器。然后,通过生成器的 update 方法传入读取的文件数据。最后,可以使用 digest 或 hexdigest 方法产生哈希值。下面是一个示例代码: ```python import hashlib path = 'setup.py' algorithm = hashlib.sha256() with open(path, 'rb') as f: algorithm.update(f.read()) sha256_hash = algorithm.hexdigest() print(sha256_hash) ``` 这段代码将计算并打印出文件 "setup.py" 的 SHA256 哈希值。注意,你可以根据需要修改文件路径和使用的哈希算法。123 #### 引用[.reference_title] - *1* *2* [Python 生成文件或字符串的 sha256](https://blog.csdn.net/TomorrowAndTuture/article/details/121356204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *3* [Python生成字符串或文件MD5和SHA256哈希值的方法](https://blog.csdn.net/qq_21264377/article/details/118933271)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值