我想獲得獨立於外部屬性(如路徑和文件名)的文件哈希(主要是視頻文件)。我將需要將散列存儲在數據庫中,並比較文件散列以找到相同的文件。用於識別相同文件的Java文件哈希
4
A
回答
2
public byte[] digestFile(File f){
try {
MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
FileInputStream fis = new FileInputStream(f);
byte[] buffer = new byte[1024];
int read = -1;
while ((read = fis.read(buffer)) != -1) {
messageDigest.digest(buffer, 0, read);
}
return messageDigest.digest();
} catch (VariousExceptions e) {
//handle
}
}
5
看一看的DigestInputStream
類:http://docs.oracle.com/javase/7/docs/api/java/security/DigestInputStream.html
1
取決於你需要什麼,你可以做到這一點很容易地使用Guava的Files和ByteStreams類:
byte[] digest = Files.getDigest(file, MessageDigest.getInstance("SHA"));
相關問題
- 1. Sha1哈希多個sha1哈希 - >安全以識別文件?
- 2. 通過識別文件前4個字節的文件哈希
- 3. 用Javadoc識別java文件
- 4. Zip文件包含相同的文件,但具有不同的哈希值?
- 5. 使用哈希集識別文本文件中的重複數字
- 6. 的Java:用相同的哈希
- 7. 文件無法識別,但在相同的文件夾中
- 8. 識別哈希類型
- 9. git可以自動識別相同的提交(使用不同的哈希)
- 10. 相當於紅寶石哈希#在咖啡文件中拒絕
- 11. SharePoint文件MD5哈希
- 12. 哈希:文件指紋
- 13. JSON文件到Ruby哈希
- 14. 識別文件
- 15. 識別文件
- 16. 獲取附件的哈希.msg文件
- 17. 將文本文件的MD5哈希保存到同一個文本文件中?
- 18. 相同的哈希函數
- 19. 識別不同的Excel文件格式
- 20. NodeJS - 使用承諾哈希文件流
- 21. 哈希文件名最快的ASP.NET哈希函數
- 22. Python和其他文件哈希之間的MD5哈希差異
- 23. gcc - 無法識別的文件:文件格式不被識別
- 24. 使用java獲取ftp服務器中文件的md5哈希
- 25. 識別.patch文件
- 26. 識別XPS文件
- 27. 用於下載文件的CMake檢查哈希(MD5/SHA256)
- 28. Python中用於命名緩存文件的最短哈希
- 29. Java掃描器不識別文件名?
- 30. android java類無法識別R文件
可以使一個散列函數取決於你喜歡的任何東西,包括'外部屬性'或不。寫這樣一個你不明白的函數是什麼? – DJClayworth 2011-04-29 15:47:47