Tại sao tôi nhận được kết quả khác với shasum của Mac so với các máy tính shasum khác?


13

Tôi đang tham gia:

appletree:~ somename$ shasum -a 512 <<< test

Và đầu ra là:

0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123  -

Sau đó, tôi đi đến một số trình tạo hàm băm trực tuyến và nhập "kiểm tra". Câu trả lời của họ là:

http://hashgenerator.de/ :

ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff

http://passwordsgenerator.net/sha512-hash-generator/ :

EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF

Vì vậy, các máy phát điện trực tuyến đồng ý. Tôi bị thiếu gì trong lệnh Mac console?

Tôi đã đọc các mantrang. Tôi thấy nó được thực hiện bằng thư viện Perl. Tuy nhiên, tôi nghĩ rằng sha512 sẽ là một chỉ định độc đáo, vì vậy tôi phải đào sâu hơn.


Dường như có một câu hỏi trùng lặp: Tại sao hàm băm dòng lệnh của tôi khác với kết quả băm MD5 trực tuyến? . Trong khi câu hỏi khác là trong cùng một bối cảnh, đó là khoảng trắng bất ngờ, nó lại xuất hiện từ một tình huống khác.

  • <<<là một chuỗi ở đây và có một sự lựa chọn thiết kế cho cách các chuỗi ở đây thêm dòng mới.
  • echo 'bla' |có nghĩa là đường ống, gọi các lớp vỏ phụ và cũng có các đối số về cách xử lý dòng mới. Ở đây có vẻ như bạn phải xem xét phiên bản vỏ .

Cảm ơn rất nhiều đến sIDIAbarker và Spiff. Khoảng trắng lại xuất hiện lần nữa ^^ ^^
peter_the_oak


Lưu ý rằng một chuỗi ở đây được dự định giống hệt với tài liệu một dòng ở đây và một tài liệu ở đây luôn kết thúc bằng một dòng mới.
chepner

Tôi không phải là người mới, nhưng đây là một số chi tiết và tin tức tinh vi mà tôi biết ơn. Vì vậy, cảm ơn cho tất cả các ý kiến ​​và câu trả lời.
peter_the_oak

Vì vậy, chúng tôi thấy rằng lệnh shasum của Mac không có gì khác biệt. Vấn đề là lỗi kỹ thuật của người dùng và phải làm với dữ liệu được truyền chứ không phải chương trình. Tôi có thể đề nghị đổi tên câu hỏi thành "Tại sao tôi nhận được kết quả khác với shasum của Mac ..." Bằng cách đó, mọi người có thể nghi ngờ ngay lập tức vấn đề do người dùng tạo. (Tôi đã thấy điều đó, có lẽ tôi đã ít có khuynh hướng kiểm tra câu hỏi này ngay bây giờ. đó không phải là những gì thực sự đã kết thúc như
TUYỆT VỜI 19/2/2017

Câu trả lời:


32

Đầu vào của shasumlời gọi trong câu hỏi là test\n(với một dòng mới), không phải test.

Nếu bạn cung cấp testkhông có dòng mới, shasumbạn sẽ nhận được đầu ra giống như các công cụ trực tuyến bạn trích dẫn:

$ echo -n "test" | shasum -a 512
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff  -

Nhân tiện, tôi nghĩ không có gì đặc biệt hay cụ thể về MacOS về những gì shasumđược tìm thấy trên MacOS; Tôi nghĩ shasumlà một phần của bản phân phối Perl tiêu chuẩn được cài đặt cùng với, ví dụ: perllệnh.


19

Thử đi:

hexdump -C <<< test

Biết shell Unix, có lẽ bạn sẽ nhận được 0x0a không mong muốn ở cuối chuỗi đó.


2
odsẽ gắn nhãn các ký tự điều khiển và làm cho rõ ràng hơn; thử: od -t a -t x1 <<< test(không bao giờ thực sự sử dụng hexdump),
babkaufmann
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.