जवाबों:
आप उपयोग कर सकते हैं
openssl dgst -sha256 <file>
MacOS 10.14 (Mojave) पर LibreSSL 2.6.4 पर परीक्षण किया गया।
Mojave से पहले आप उपयोग कर सकते हैं openssl sha -sha256 <file>
या openssl sha256 <file>
।
खुलता शाल कमांड के लिए कमांड लाइन विकल्प की जांच करने के लिए openssl sha -help
:।
ओएस एक्स एक शसम कमांड के साथ जहाज ।
> which shasum
/usr/bin/shasum
आप उपयोग कर सकते हैं:
> shasum -a 256 <file>
अधिक जानकारी:
> shasum --help
Usage: shasum [OPTION]... [FILE]...
Print or check SHA checksums.
With no FILE, or when FILE is -, read standard input.
-a, --algorithm 1 (default), 224, 256, 384, 512, 512224, 512256
-b, --binary read in binary mode
-c, --check read SHA sums from the FILEs and check them
-t, --text read in text mode (default)
-p, --portable read in portable mode
produces same digest on Windows/Unix/Mac
-0, --01 read in BITS mode
ASCII '0' interpreted as 0-bit,
ASCII '1' interpreted as 1-bit,
all other characters ignored
The following two options are useful only when verifying checksums:
-s, --status don't output anything, status code shows success
-w, --warn warn about improperly formatted checksum lines
-h, --help display this help and exit
-v, --version output version information and exit
When verifying SHA-512/224 or SHA-512/256 checksums, indicate the
algorithm explicitly using the -a option, e.g.
shasum -a 512224 -c checksumfile
The sums are computed as described in FIPS-180-4. When checking, the
input should be a former output of this program. The default mode is to
print a line with checksum, a character indicating type (`*' for binary,
` ' for text, `?' for portable, `^' for BITS), and name for each FILE.
Report shasum bugs to mshelor@cpan.org
which shashum
आउटपुट कुछ नहीं
/usr/bin
वैकल्पिक सामान के साथ प्रदूषित नहीं करेगा । मुझे यह सत्यापित करना होगा कि आज बाद में मामला है। यदि यह वास्तव में XCL इंस्टॉल से आया है तो उत्तर को अपडेट करेगा।
shasum
की तुलना में एक अलग हैश देता है openssl sha -sha256 <file>
(बाद वाला सही हैश है)। कोई विचार क्यों?
shasum
एक पर्ल स्क्रिप्ट है, Digest::SHA
हैश मान की गणना करने के लिए उपयोग करता है। एक ही फाइल के लिए मैं या तो का उपयोग कर ठीक उसी SHA पाने shasum
या openssl
एक के लिए SHA-256
हैश गणना। देखें: gist.github.com/ianchesal/82a064b8971eb5e717ce84f3ded6dbfd
@ जॉन के उपयोगी उत्तर को स्पष्ट करने के लिए - जो आपको दिए गए हैश की तुलना एक कमांड में अपनी फाइल से करने की अनुमति देता है:
दर्ज करें shasum -a 256 -c <<<
,
एक वैकल्पिक स्थान,
उसके बाद एक एकल टिक ( '
),
उसके बाद हैश द्वारा तुलना करना,
उसके बाद एक स्थान,
उसके बाद एक मोड चरित्र, जिसके आधार पर प्रारंभिक हैश उत्पन्न किया गया था:
कुछ नहीं , अगर हैश के साथ -t
या कोई विकल्प नहीं बनाया गया था (पाठ मोड, जो डिफ़ॉल्ट है)
तारांकन चिह्न ( *
), यदि हैश -b
(बाइनरी मोड) के साथ बनाया गया था
प्रश्न चिह्न ( ?
), अगर हैश -p
(पोर्टेबल मोड) के साथ बनाया गया था
कैरट ( ^
), अगर हैश -0
(बिट्स मोड) के साथ बनाया गया था
फ़ाइल के पथ के
बाद , एक समापन एकल टिक ( '
) के बाद।
निम्न टूटने की तरह, हैश और फाइलपैथ भागों के आसपास परिमार्जन के साथ, और वैकल्पिक "मोड चरित्र" भाग के चारों ओर चौकोर कोष्ठक। ( वास्तविक जीवन में पार्न्स या कोष्ठक शामिल न करें - वे सिर्फ यहाँ हैं ताकि भागों को आसानी से देखा जा सके! )
shasum -a 256 -c <<< '(hashToCompare) [mode character](filepath)'
टूट गया :
वास्तविक shasum कमांड हैshasum -a 256 -c
-a 256
बताता है shasum
उपयोग करने के लिए SHA256 ।
-c
shasum
प्रदान किए गए इनपुट को "जांचना" बताता है।
<<<
एक यूनिक्स / लिनक्स विशेष वर्ण सेट, एक "पुनर्निर्देशन" ऑपरेटर कहा जाता है। यह किसी पूर्व आज्ञा में कुछ खिलाने के लिए है। इसका उपयोग करके, हम कह रहे हैं कि हम shasum
इनपुट के रूप में उपयोग करने के लिए कमांड के लिए सूचना की एक स्ट्रिंग प्रदान करने जा रहे हैं ।
इनपुट जानकारी की स्ट्रिंग में एकल टिक्स खोलने और बंद करने की आवश्यकता होती है, जैसे कि 'some string here'
, या इस मामले में, हैश, मोड कैरेक्टर और फ़ाइलपैथ की जाँच की जानी चाहिए।
हैश स्ट्रिंग के अंदर हिस्सा कुछ विशेष की जरूरत नहीं है - लेकिन यह एक रिक्ति से पालन किया जाना चाहिए।
मोड चरित्र हिस्सा कुछ भी नहीं, तारांकित (हो सकता है *
), एक प्रश्न चिह्न ( ?
), या एक कैरट ( ^
)। यह shasum
उस मोड को बताता है जिसके साथ हैश उत्पन्न किया गया था। (नोट: कोई भी चरित्र, पाठ मोड का प्रतिनिधित्व करने वाला, shasum
डिफ़ॉल्ट नहीं है।)
Filepath हिस्सा है, फाइल करने के लिए वास्तविक पथ जांच की जानी है।
इसलिए, यहां एक वास्तविक जीवन का उदाहरण एक विशेष MAMP डाउनलोड फ़ाइल की जाँच कर रहा है, जिसके विरुद्ध SHA-256 मूल्य है। *
मोड चरित्र काम करने के लिए इस चेक के लिए आवश्यक किया गया था:
shasum -a 256 -c <<< 'f05ede012b8a5d0e7c9cf17fee0fa1eb5cd8131f3c703ed14ea347f25be11a28 *MAMP_MAMP_PRO_5.2.pkg'
नोट: इस आदेश का परिणाम (मेरी उदाहरण फ़ाइल के लिए) या तो है -
ठीक:
MAMP_MAMP_PRO_5.2.pkg: ठीक है
या
अनुत्तीर्ण होना:
MAMP_MAMP_PRO_5.2.pkg: विफल
शमस: चेतावनी: 1 संगणित चेकसम मेल नहीं खाते
shasum -c <<< '7cb77378a0749f2a9b7e09ea62ffb13febf3759f *sample.txt'
संदेश देता है *sample.txt: FAILED open or read
। तारांकन के बिना, sample.txt: OK
। मैं अभी तक कहीं और तारांकन के उपयोग का आधार नहीं खोज सका हूं। क्या आप स्पष्ट कर सकते हैं?
--binary
विकल्प के साथ ) में उत्पन्न हुआ था ? मैन पेज से: "चेक करते समय, इनपुट इस प्रोग्राम का एक पूर्व आउटपुट होना चाहिए। डिफ़ॉल्ट मोड चेकसम के साथ एक लाइन प्रिंट करने के लिए है, एक चरित्र जो इंगित करता है टाइप ( *
बाइनरी के लिए,` `टेक्स्ट के U
लिए, ^
BITS के लिए , UNIVERSAL के लिए) ?
पोर्टेबल के लिए), और प्रत्येक फ़ाइल के लिए नाम। " तो, चेकसम और फ़ाइल नाम के बीच के वर्ण, चेकसम निर्मित होने पर निर्धारित मोड पर निर्भर करते हैं?