AI創(chuàng)想秀,邂逅“華為云ModelArts”征文大賽——第一次收官
766
2025-03-31
小白最近學習編程學煩了,看到學委之前寫了一篇節(jié)約3小時之間試水Unity的,直接過來找我要了!(要么是懶得下安裝包,不然是太依賴學委了,都不好!)
剛好我手上有一個Unity安裝包, 就發(fā)給他了。
不知道啥原因,他說傳輸后打不開?
怎么可能呢?
接著,再傳了一次還是打不開。
這讓學委一下子想到了:得cksum一下
1) 先cksum工具本地算一次,得到校驗碼
2)然后在接受的系統(tǒng)中又計算一次,得到文件校驗碼
3)當兩個數(shù)字校驗相等,文件被認為是被正確傳輸了
使用就像下面一樣:
cksum 文件名
第一個數(shù)字:2283207869 //為校驗碼
第二個數(shù)字: 844948304 // 為文件字節(jié)數(shù)
然后我讓小白在本機跑一邊cksum,發(fā)結果給我,一看他那邊的校驗數(shù)字居然是 33303330333 ,這個數(shù)字,稍微思考一下就很離譜!
很明顯Unity包傳輸出錯了。
這次我直接拷貝U盤給他了,并且進入U盤對應目錄進行cksum了,萬無一失!
好了,小白可以先走了。親愛的讀者我們繼續(xù)學習一下cksum吧,很多使用的。
cksum官方補充
Linux cksum命令用于檢查文件的CRC是否正確。確保文件從一個系統(tǒng)傳輸?shù)搅硪粋€系統(tǒng)的過程中不被損壞。
CRC是一種排錯檢查方式,該演算法的標準由CCITT所指定,至少可檢測到99.998%的已知錯誤。指定文件交由cksum演算,它會回報計算結果,供用戶核對文件是否正確無誤。
https://www.man7.org/linux/man-pages/man1/cksum.1.html
這個算法不繼續(xù)介紹,本文談談應用。
更多應用 - sha512cksum
sha512cksum 比cksum(32位 cksum)更加可靠,因為是512位哈希cksum。
比如我們常見的maven(Java項目管理工具):
下圖的表格第二列為下載鏈接,第三列為每一個包的sha512cksum的簽名。
上面頁面的鏈接可以點擊【maven下載頁面】
我們可以通過點擊上面的鏈接下載,比如這個:maven tar gz包
通過這個鏈接下載然后跑shasum在本地校驗一次。
shasum -a 512 apache-maven-3.8.1-bin.tar.gz #得到這個簽名:0ec48eb515d93f8515d4abe465570dfded6fa13a3ceb9aab8031428442d9912ec20f066b2afbf56964ffe1ceb56f80321b50db73cf77a0e2445ad0211fb8e38d
這個值跟第三列鏈接的文件【點這里下載sha512】內(nèi)容必須一致.
操作復雜,學委準備了下面的腳本。
#!/bin/sh #雷學委的demo代碼 #僅支持macbook url=https://mirror-hk.koddos.net/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz #url_sha512=${url}.sha512 url_sha512=https://downloads.apache.org/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz.sha512 curl ${url_sha512} -o maven.tar.gz.sha512 curl ${url} -o maven.tar.gz shasum -a 512 maven.tar.gz
讀者可以運行這個腳本試試,最好的驗證效果如下圖:
更多場景
多文件遷移校驗
通常是用在大量的打包數(shù)據(jù)遷移,生成每個文件的數(shù)字簽名。
部署制品的校驗
做Java的同學知道一個叫做Nexus的依賴倉庫,不止可以放jar,還能放tgz包,我們通常會生成tgz包的同時,進行sha512把簽名結果存到文件一并傳到nexus上面。
當我們拿tgz文件部署的時候,同時下載tgz和sha512,本地校驗,保證了部署安裝的包跟實際交付的一致。
Maven
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。