Tại sao `md5sum` không cung cấp hàm băm giống như Internet?


8

Tôi muốn tìm băm md5 của chuỗi "a", nhưng việc chạy echo "a" | md5summang lại cho tôi một hàm băm khác so với những gì tôi nhận được nếu tôi tìm kiếm trên internet (ví dụ: sử dụng DuckDuckGo hoặc kết quả tìm kiếm đầu tiên tôi tìm thấy ).

Chạy echo "a" | md5sumcho tôi "60b725f10c9c85c70d97880dfe8191b3", nhưng nó phải là "0cc175b9c0f1b6a831c399e269772661".

Nếu tôi thực hiện tra cứu băm ngược cho "60b725f10c9c85c70d97880dfe8191b3", tuy nhiên tôi nhận được "a".

Câu trả lời:


15

Lý do cho các băm là khác nhau là echobao gồm một dòng mới ở cuối chuỗi đầu ra để làm cho nó đẹp. Điều này có thể bị cấm bởi -ncờ (nếu việc triển khai echohỗ trợ của bạn) hoặc bằng cách sử dụng một chương trình khác (như printf):

> echo "a" | md5sum   
60b725f10c9c85c70d97880dfe8191b3  -

> echo -n "a" | md5sum
0cc175b9c0f1b6a831c399e269772661  -

> printf "a" | md5sum 
0cc175b9c0f1b6a831c399e269772661  -

2
echothêm một dòng mới vào đầu ra để làm cho nó thành một dòng hoàn chỉnh, không làm cho nó đẹp.
Kusalananda

@Kusalananda Nhập vào printf textlàm cho văn bản xuất hiện trước dòng nhắc nhở tiếp theo.
neverMind9
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.