日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

文件夹进行MD5校验的实现算法

發(fā)布時(shí)間:2024/2/2 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 文件夹进行MD5校验的实现算法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

每份相同數(shù)據(jù)(文件夾)都可以生成一份唯一的md5校驗(yàn)文件,我們可以通過(guò)直接校驗(yàn)整個(gè)數(shù)據(jù)文件夾的方法來(lái)確定數(shù)據(jù)是否有誤。

1.針對(duì)整個(gè)文件夾生成md5校驗(yàn)文件方法:

以data文件夾為例,我們需要得到data整個(gè)文件夾中的文件的md5校驗(yàn)值,我們通過(guò)shell程序?qū)φ麄€(gè)data文件夾中的文件進(jìn)行md5校驗(yàn)。

通過(guò)如下命令獲得整個(gè)data文件夾的md5校驗(yàn)文件:

1 cd  data
2 find  ./  -type  f  -print0  |  xargs  md5sum  >  data_temp.md5
3 cat data_temp.md5 |  sort > data.md5

(找出data文件中的每個(gè)文件并獲得該文件的md5值存入data_temp.md5

中,然后對(duì)md5值的文件進(jìn)行排序獲得data.md5校驗(yàn)文件)

data.md5文件中數(shù)據(jù)格式如下,前面的字符串是該文件的md5值,后面的是該文件相對(duì)data文件夾的路徑。由于每個(gè)不同文件的md5值都唯一,每個(gè)文件的路徑都不同,所以排序之后,同樣的文件夾生成的該md5文件都是唯一的

040173e4c2c29787cd0e644bd3737f8f./preinstall/Babaqunaer_1.3.6.apk

0054b51601427b2630793d43ed0b224c./pcvoice/7.mp3

2.生成md5校驗(yàn)文件程序:

#!/bin/bash
# author: huinatianyun
# Updated Date:2014-03-24
# Set environment variables

LANG=""
export LANG
#這里必須要設(shè)置語(yǔ)言環(huán)境,因?yàn)閟ort排序是對(duì)文件的每一行作為一個(gè)單位,相互比較,比較原則是從首字符向后依次進(jìn)行比較,語(yǔ)言環(huán)境不同,字符的編碼可能就不一樣,所以會(huì)導(dǎo)致文件文件排序結(jié)果不一致,LANG=""表示默認(rèn)設(shè)置為en_US 
echo ""
echo ""
echo "please put generate_md5_value.sh, custdata.tar, hpdata.tar, hwapudata.tar in the same directory,"
echo ""

read -p "are you put generate_md5_value.sh in the right position ? (Y/N): " select_yn

echo ""

echo ""

if [ "$select_yn" == "Y" ] || [ "$select_yn" == "y" ]; then

echo "start generate data.md5 ..."

cd ./data

find ./ -type f -print0 | xargs -0 md5sum | sort > ../data.md5 

#xargs 命令-0是表示以空字符作為分隔符,因?yàn)橛行┠夸浀拿质呛锌崭竦模鴛args是默認(rèn)是以空格為分割符的,它會(huì)誤認(rèn)為還有空格的目錄的路徑為兩個(gè)路徑,換成空字符就是消除這個(gè)問(wèn)題 

echo "generate md5 value over"

elif [ "$select_yn" == "N" ] || [ "$select_yn" == "n" ]; then 

echo "stop generate md5 value !"

else

echo "I don't know what your choice is !!!"

fi 

3.數(shù)據(jù)校驗(yàn)方法:

通過(guò)上述方法對(duì)data文件夾里數(shù)據(jù)生成一份md5校驗(yàn)文件,這個(gè)md5文件就這可作為這個(gè)data文件夾的校驗(yàn)文件,校驗(yàn)一個(gè)文件夾數(shù)據(jù)是否和data相同的方法就是針對(duì)該文件夾通過(guò)同樣的方法生成一份md5校驗(yàn)文件,然后比對(duì)校驗(yàn)文件是否相同,如果兩個(gè)文件相同,這認(rèn)為這兩個(gè)比對(duì)的數(shù)據(jù)文件夾一致

總結(jié)

以上是生活随笔為你收集整理的文件夹进行MD5校验的实现算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。