Tôi có một tệp
testfile
và một chuỗiteststring
.Nội dung giống nhau, MD5 khác nhau - Tệp và ChuỗiTrong một vỏ tôi đã viết:
echo "a" > testfile
sau đó
xxd testfile
để tôi có thể nhìn thấy các giá trị thập lục phân của filecontent tôi
đầu ra:0000000: 610a a.
thấy mã của tôi:
int file; struct stat s; unsigned long size; char* buffer; char md5[MD5_DIGEST_LENGTH] file = open("testfile", O_RDONLY); if (file < 0) return false; if (fstat(file, &s) < 0) { close(file); return false; } size = s.st_size; //GET FILE SIZE printf("filesize: %lu\n", size); //PRINT FILESIZE FOR DEBUGGING buffer = (char*)mmap(0, size, PROT_READ, MAP_SHARED, file, 0); //MAP FILE CONTENT TO BUFFER MD5((unsigned char*)buffer, size, md5); //GENERATE MD5 munmap(buffer, size); //UNMAP BUFFER close(file); for (int i = 0; i < MD5_DIGEST_LENGTH; i++) printf("%02x", md5[i]); printf("\n"); unsigned char* teststring = "\x61\x0a"; //SAME STRING AS IN THE FILE MD5((unsigned char*)teststring, 2, md5); for (int i = 0; i < MD5_DIGEST_LENGTH; i++) printf("%02x", md5[i]); printf("\n");
nó in:
filesize: 2 60b725f10c9c85c70d97880dfe8191b3 e29311f6f1bf1af907f9ef9f44b8328b
hai hoàn toàn khác nhau băm md5.
tôi đã cố gắng viếtbuffer
vào một tập tin
và viếtteststring
vào một tập tin họ đều giống nhau!
bằng cách nào?
không phải làbuffer
giống vớiteststring
?
6
A
Trả lời
2
Băm chính xác là băm đầu tiên của bạn, 60b725f10c9c85c70d97880dfe8191b3
.
$ echo "a" | md5
60b725f10c9c85c70d97880dfe8191b3
băm thứ hai của bạn sẽ xảy ra là các hash của "\ x64 \ x0a", hoặc ký tự 'd' theo sau là một dòng mới:
$ echo "d" | md5
e29311f6f1bf1af907f9ef9f44b8328b
Bạn có chắc chắn mã bạn đăng là gì bạn đang biên dịch/chạy? Bạn đã quên biên dịch lại chưa? Bạn đang thực hiện một nhị phân cũ?
+1
"Bạn có chắc là mã bạn đăng là thứ bạn đang biên dịch không?" -- Hầu như không. 'char md5 []' cần phải được unsigned, 'teststring' cần phải được ** không ** unsigned để thậm chí làm cho biên dịch này ở nơi đầu tiên ... – DevSolar
Các vấn đề liên quan
- 1. Tại sao hai tệp jar này có nội dung giống hệt nhau có kích thước tệp khác nhau?
- 2. Hai URL giống nhau nhưng khác nhau về các tham số: Nội dung trùng lặp?
- 3. Servlet trộn tiêu đề và nội dung và viết hai lần giống nhau trong đầu ra?
- 4. Kiểm tra MD5 của các tệp APK Android khác nhau. Tại sao?
- 5. Là chuỗi [] và chuỗi ... (Var-args) giống nhau khi chúng hoạt động trong nội bộ?
- 6. Hàm trả về MD5 khác nhau mỗi lần
- 7. sự giống nhau và khác biệt giữa jpa và hibernate
- 8. In nội dung của một DocumentViewer trong một chuỗi giao diện người dùng khác nhau
- 9. Hợp nhất nội dung MediaWiki với nhau
- 10. máy chủ sql chọn truy vấn một cột là giống nhau và khác là khác nhau
- 11. MD5 băm tính toán khác nhau trên máy chủ
- 12. Tạo nhiều tệp nhật ký có nội dung khác nhau với log4j
- 13. Đọc nội dung tệp ở phía máy khách trong javascript trong các trình duyệt khác nhau
- 14. Matching chuỗi khác nhau
- 15. Tại sao tôi không thể gán thay thế lẫn nhau với hai cấu trúc có nội dung giống hệt nhau?
- 16. Java regex và sed không giống nhau ...?
- 17. Ngôn ngữ khác nhau trong tiêu đề và nội dung của thẻ HTML ABBR
- 18. AFNetworking AFHTTPClient các loại nội dung khác nhau cho sự thành công và thất bại
- 19. Cách đọc trình đọc màn hình để ngừng đọc và đọc nội dung khác nhau
- 20. Là mảng float, float [], và double [] khác nhau, hoặc giống nhau?
- 21. Statemachine và statechart có giống nhau không?
- 22. Nội dung web và webapp khác biệt
- 23. Sự khác nhau giữa việc sử dụng MD5.Create và MD5CryptoServiceProvider là gì?
- 24. Các nguồn Java giống hệt nhau được biên dịch thành các lớp nhị phân khác nhau
- 25. ClearTimeout và clearInterval có giống nhau không?
- 26. Sự khác nhau giữa restartLoader và onContentChanged
- 27. Điều gì khác nhau giữa các tệp Dim() Khi chuỗi và các tệp Dim là String()?
- 28. Ứng dụng FB giống nhau, nhiều ID gói iOS, có hậu tố khác nhau?
- 29. Sự khác nhau giữa chế độ nhị phân MD5 và chế độ văn bản là gì?
- 30. Truy cập phần tử nội dung từ trang nội dung qua trang cái lồng nhau
Tôi không phải là lập trình viên C/C++ nên tôi không thể cung cấp bất kỳ trợ giúp kỹ thuật quá mức nào. Định dạng tập tin trong (Unicode/ASCII, vv) là gì? Độ dài của bộ đệm (một khi đã được điền) có giống chiều dài chuỗi thử không? – series0ne
có, cả hai đều có chiều dài = 2 ký tự; format = ascii – bricklore
in bộ đệm/chuỗi trong hex (không phải là md5s), xem chúng có khác nhau hay không. nếu chúng giống nhau, bạn có thể cần phải sử dụng hàm md5 theo cách khác (một số triển khai yêu cầu bạn hoàn thành thao tác md5) – x4rf41