Re: [程式] 更新程式
看板GameDesign (遊戲設計)作者GALINE (我是CQD,不是cqd)時間16年前 (2008/06/13 13:31)推噓2(2推 0噓 13→)留言15則, 3人參與討論串5/11 (看更多)
※ 引述《gamblemaker (GambleMaker)》之銘言:
: ※ 引述《gamblemaker (GambleMaker)》之銘言:
: : 推 GALINE:CRC、MD5、SHA都是一樣功能的東西,愛用CRC是因為CRC速度快
: : → GALINE:不考慮強固性,只考量檔案版本跟是否有傳輸錯誤,CRC就能用
: 我是想回這位大大的推文 感謝你的推 我也回報你一下
: 你不知道 TCP 裡面有 CRC 嗎??
: checksum 那欄幹麼用的....
樓上的回文說的是客戶端程式(也就是你寫的updater)計算檔案的CRC,然後傳回伺服器
這件事情跟TCP的CRC並沒有關係。並不會因為TCP有對每個封包作CRC就能夠知道整個檔
案的CRC
: 還有 crc 怎樣確保檔案是唯一的?? 還有所謂強固性是什麼東西???
基本上crc、md5、sha、des…這些東西都是雜湊函數(hash function。
雜湊函數的目的是你丟一段資料進去,他會吐出一段長度固定的雜湊值出來。吐出來的東
西(理論上)不能用來反推出原本的資料內容。而且只要餵進去的資料有很小的差別,雜
湊值就會變得完全不同。
換言之,只要檔案有改動/損壞/版本不同,計算出的hash就會完全不同。因此可以用來當
作檔案版本識別,還能避免使用者自己改版本紀錄檔的問題。
TCP對整個封包作CRC,然後把CRC的值放在封包內,接收端檢查crc跟封包是否批配,如果
批配表示封包內容沒有傳輸錯誤。要用MD5或sha-1來作理論上也是一模一樣。可是技術上
來說會浪費運算資源跟網路頻寬。
同樣的,你的檔案作CRC之後,只要沒有被改動,算出的CRC跟伺服器端的CRC應該要一樣
如果不一樣,要不是程式被改過,不然就是版本不同了(或說伺服器端的程式被改過)
強固性就是指容不容易被人找出碰撞。crc最容易,因為他bit數最少。實務上把crc跟
檔案大小兩個參數參在一起,要碰撞的機會就很低了。
這種情況如果真的碰撞,大概跟搭747結果外艙裂開,還只有自己被吸出機艙外一樣倒楣
當然,如果你不信任CRC,你也可以用MD5、SHA、或其他任何hash function
如果你要知道更詳細的概念,請搜尋hash function或雜湊函數。這個可以講很久…
: → GALINE:P2p跟ftp跨nat一樣可以用,列表公開只要你不讓人上傳就沒事 06/13 12:41
: p2p跟ftp跨nat當然可以用 但是你有辦法解決嗎?
: 也許你很強花一天就解決這個問題了
對不起,我不強,現在我連百行的C程式都寫不出來。
不過我覺得我知道的東西應該夠你參考。
FTP要跨NAT請切passive模式
怎麼實做要看你是要自己寫client、用別人的library、或是呼叫系統內建的ftp程式
自己寫的話…請先去看rfc959,這是FTP的規範文件。如果真看完你就比我威了[汗]
用別人的library,要怎麼下指令切換請找library的的文件。
呼叫系統內建的ftp,請參考系統程式的說明檔。像是進ftp之後下"PASV"指令之類的
windows的ftp不直接支援,要下literal指令給ftp server。詳細請google。
P2P我還真的不知道怎麼搞,但至少技術上可行。現在的主流P2P都能作到
如果有現成的library就好了。
: 那我們假設 server 後面也是 nat ? 請問哪個比較方便??
server端如果也在nat後面會很麻煩。我知道的方法是設定nat的dmz給你的檔案伺服器。
不過我不認為這樣是個好方法就是。
最好是不要這麼作,真的要的話就多試驗了[汗]
: 列表公開真的不上傳就沒事嗎?我中間給你 proxy 你怎麼辦?
: 在加上你只有 CRC , 檔案要被換爽的喔?
前提是人家要能找出同樣大小的CRC碰撞,而且換了以後還要是能執行的檔案…
當然,如果你不信任CRC,那就用MD5或SHA,甚至你想用一些鮮為人知的hash也可以
這種問題就跟鎖跟開鎖一樣,扁鑰匙並不是無法被打開,但是為什麼大家還是用扁鑰匙?
因為扁鑰匙已經夠用。要加強安全性的話成本跟方便性都會大幅下降。
如果你認為需要更高的安全性,避免中間人,那就去弄台能跑https或ftps的機器吧,然
後去申請公開簽章吧。然後找看看有沒有適合的library來用。
或你比較拚命的話,你可以看很多很多的rfc文件以後自己寫…
--
你們這些只會躲在家裡發些缺乏社會知識討論串的傢伙
--護士魔女蔻睦姬
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.112.152
※ 編輯: GALINE 來自: 61.62.112.152 (06/13 13:32)
※ 編輯: GALINE 來自: 61.62.112.152 (06/13 13:34)
推
06/13 13:34, , 1F
06/13 13:34, 1F
→
06/13 13:35, , 2F
06/13 13:35, 2F
→
06/13 13:36, , 3F
06/13 13:36, 3F
→
06/13 13:37, , 4F
06/13 13:37, 4F
→
06/13 13:38, , 5F
06/13 13:38, 5F
→
06/13 13:38, , 6F
06/13 13:38, 6F
→
06/13 13:40, , 7F
06/13 13:40, 7F
→
06/13 13:41, , 8F
06/13 13:41, 8F
→
06/13 13:42, , 9F
06/13 13:42, 9F
→
06/13 13:42, , 10F
06/13 13:42, 10F
推
06/13 13:45, , 11F
06/13 13:45, 11F
→
06/13 13:45, , 12F
06/13 13:45, 12F
→
06/13 13:46, , 13F
06/13 13:46, 13F
→
06/13 13:46, , 14F
06/13 13:46, 14F
→
06/13 14:18, , 15F
06/13 14:18, 15F
討論串 (同標題文章)
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
21
37
42
93