10
A
回答
13
您應該使用DCPcrypt v2並讀取緩衝的文件,並將SHA掃描器與緩衝區一起送入,直到讀完完整的5GB文件。
如果您想知道如何讀取緩衝的大文件,請參閱我的回答about a file copy using custom buffering。
所以在概念(沒有真正的Delphi代碼!):
function GetShaHash(const AFilename: String)
begin
sha := TSHAHasher.Create;
SetLength(Result, sha.Size);
file := OpenFile(AFilename, GENERIC_READ);
while not eof file do
begin
BytesRead := ReadFile(file, buffer[0], 0, 1024 * 1024);
sha.Update(buffer[0], BytesRead);
end;
sha.Final(Result[0]);
CloseFile(file);
end;
0
有一個OpenSSL的Delphi界面,不是嗎?
這應該爲您提供更好的表現。
5
我會建議沃爾夫岡·埃爾哈特的CRC /散列。
http://home.netsurf.de/wolfgang.ehrhardt/
它的快速和「可與大多數當前帕斯卡被編譯(TP 5/5.5/6,BP 7,VP 2.1,FPC 1.0/2.0/2.2)和Delphi版本(與V1試驗到V7/9/10)」。
我也用過D11/D12。
+0
是的,這也是一個不錯的,非常好的asm優化:) – 2009-02-16 15:51:43
0
如果我沒有記錯,Indy帶有幾個基於流的哈希方法。
相關問題
- 1. 德爾福v.Word - 如何從德爾福
- 2. 德爾福時間數學計算器
- 3. 德爾福2010年計算列在DBGrid
- 4. 德爾福:德爾福和Microsoft SQL Server 2005從功能不好的計算值
- 5. 德爾福:一個線程
- 6. 德爾福:一個TByteDynArray
- 7. 德爾福7德爾福XE2 res文件問題
- 8. 德爾福 - 根據大小
- 9. 德爾福HID Delphi7和德爾福XE2
- 10. 德爾福 - 查找文本大TMemo
- 11. 德爾福 - 形式最大化事件
- 12. 德爾福 - 如何提高
- 13. 如何從德爾福
- 14. 德爾福:TOpenDialog + VCL樣式文件大量損壞文件
- 15. 德爾福保存到文本文件
- 16. 德爾福
- 17. 與德爾福
- 18. 與德爾福
- 19. 德爾福:TRegExpr
- 20. 類德爾福
- 21. 德爾福ftpgetfile
- 22. 德爾福
- 23. DES_KEY_SZ德爾福
- 24. 德爾福
- 25. 與德爾福
- 26. 德爾福Application.HintColor
- 27. 德爾福
- 28. 德爾福XE2(優勢德爾福組件)
- 29. 德爾福的2個點計算WGS84路口
- 30. 德爾福 - 將兩個exe文件轉換成一個服務?
我沒有包含真正的Delphi代碼,因爲我目前沒有安裝Delphi編譯器。 – 2009-02-16 13:57:48