對檔案指定區間做校驗,超出檔案長度補0填充

2021-10-24 10:43:10 字數 1305 閱讀 2993

import hashlib

import os

file_path = r'd:\codepath\***.bin'

# 檔案實際大小為 461248 位元組

start_addr =

460248

read_len =

1500

file_size = os.path.getsize(file_path)

fo =

open

(file_path,

"rb"

)fo.seek(start_addr)

tmp_file = fo.read(read_len)

if start_addr+read_len > file_size:

tmp_file += b'\x00'

*(start_addr+read_len-file_size)

sha1 = hashlib.sha1(

)sha1.update(tmp_file)

sha1_result = sha1.hexdigest(

)print

(sha1_result)

# 輸出 c4c23b3fafd946987fd9acedfd3cc833121fe801

因為檔案實際長度為461248位元組, 現在讀取開始位址為460248,讀取長度為1500,因此需要填充特定的字元b』\x00』,以 b 形式追加在讀取檔案的 b 字元後即可。

import hashlib

import os

file_path = r'd:\codepath\***.bin'

start_addr =

460248

read_len =

1500

file_size = os.path.getsize(file_path)

fo =

open

(file_path,

"rb"

)fo.seek(start_addr)

tmp_file = fo.read(read_len)

# 和fo.read()相同,讀到檔案末尾結束

sha1 = hashlib.sha1(

)sha1.update(tmp_file)

sha1_result = sha1.hexdigest(

)print

(sha1_result)

# 輸出 fcf9b5d5e3e74ee63e57df6955a4c4e350c312aa

java對檔案損壞校驗

檔案損壞校驗 1.背景 出於專案業務的需求,需要對上傳檔案處理,服務端需要甄別損壞檔案,去攔截。則需要對上傳的檔案去判斷,疏於搜尋水平,谷歌了下沒找到好的方法。則思考了一種目前看來可行的判別方法。2.思路。根據檔名,通過字串分隔,判斷出檔案的現用格式。再引入tika包,對檔案的實際格式進行判斷,則與...

shell中對檔案指定行的操作

1 awk1 awk 可以設定條件來輸出檔案中m行到n行中每行的指定的k欄位,使用格式如下 awk nr m,nr n path filename m,n,k表示實在的數值,其中k為0 9。如果要用變數來表示m,n的值,則變數需要用單引號將其引起來。nr,是awk命令在此用法下的規定字段 path ...

PHP對資料夾做訪問許可權設定

本來我是想到直接在htaccess檔案裡面路由重寫,然後經過單一入口點來進行處理,這個單一入口點是為訪問者做一些驗證的操作,如果不符合條件則直接 t掉,但是這樣就要侷限與apache伺服器,也就是說,當我換個iis伺服器的時候就會出一些問題了。當然,我也看了一些框架的實現,他們一般都不借助 htac...