您好,登錄后才能下訂單哦!
在百度網盤中上傳文件的時候、我發現那上傳的速度真是一個快。
快到讓我吃驚之外、還多了一份好奇。使用百度上傳文件的時候的用戶體驗是非常不錯的
除了帶寬的問題、這其中是不是還有些別的呢。在我學習到的知識當中我自然而然的想到
了單向加密算法(MD5)。
我們知道MD5加密的一個特征就是:雪崩效應(一旦被加密的內容發生一丁的點變化、將引起加密結果巨大的變化)
我們不妨設想一下:
在用戶的本機電腦上有3個文件(Test1.txt | Test2.txt | Test3.txt)、用戶只是修改了其中的一個:Test3.txt
盡管另外的2個用戶并沒有做任何修改、但是用戶也把它拖入了上傳的隊列當中。
我的思考:
假設(Test1.txt | Test2.txt | Test3.txt)這3個文件服務器上已經存在一份了、只是Test3.txt這個文件不是最新
的。為了得到最好的用戶體驗最好的做法就是跳過(Test1.txt | Test2.txt)這2個文件,直接上傳Test3.txt就行了。
但是我們首先需要解決的一個問題就是:我們知道Test3.txt被用戶修改了、但是電腦并不清楚。
此處我再次假設一下:
如果我們有一種方法可以比對(服務器上已經存的文件 和用戶端上需要上傳的同名文件的)特征碼(即:MD5加密結果)
:如果兩者MD5加密的結果一致我們就認為該文件沒有被修改、所以不需要上傳。
:如果兩者MD5加密的結果不一致我們就認為該文件被修改了、需要上傳。
這樣一來本來需要上傳3個文件、現在只需上傳一個文件(被修改的那一個)就可以了、如此一來速度顯然要快上很多了。
總結:
百度網盤上傳速度如此之快 自然離不了那些高大上的技術,并非我所能了解的,此不必多說了。
我的想法有些異想天開,但不并妨礙我求知的欲望... (^V^)
下面是一個有關于MD5的一個小例子:
第1次向 1.txt 寫入的是"12345678" ;第2次向 1.txt寫入的是 "12345678 "多一個空格.
[root@Director1 wbq]# touch 1.txt
[root@Director1 wbq]#
[root@Director1 wbq]# echo "12345678" > 1.txt
[root@Director1 wbq]#
[root@Director1 wbq]# cat 1.txt
12345678
[root@Director1 wbq]#
[root@Director1 wbq]# md5sum 1.txt
23cdc18507b52418db7740cbb5543e54 1.txt
[root@Director1 wbq]#
[root@Director1 wbq]# md5sum 1.txt
23cdc18507b52418db7740cbb5543e54 1.txt
[root@Director1 wbq]#
[root@Director1 wbq]# echo "12345678 " > 1.txt
[root@Director1 wbq]#
[root@Director1 wbq]# md5sum 1.txt
0a248abc4cfd2c83de82a5748b141cea 1.txt
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。