`Sha256sum` के साथ SHA256 चेकसम का सत्यापन करना डेबियन पर क्यों विफल है और उबंटू पर काम करता है?


34

Ubuntu 14.04 पर, sha256sumसे coreutilsकाम करता है के रूप में मैं उम्मीद:

echo 879dd0d7637876be4796f7e6f194a111d21088be85cfe717fc97e2e7f05e79d2 /tmp/myfile | sha256sum -c
/tmp/myfile: OK

हालांकि, डेबियन व्हीज़ी पर सटीक एक ही फ़ाइल के साथ एक ही कमांड विफल रहता है:

sha256sum: standard input: no properly formatted SHA256 checksum lines found

मुझे यह समझ में नहीं आता है। मैं डेबियन पर शेल स्क्रिप्ट में मज़बूती से चेकसम को कैसे सत्यापित कर सकता हूं?


Ubuntu 14.04 पर:

⟫ sha256sum --version
sha256sum (GNU coreutils) 8.21

व्हीजी पर:

$ sha256sum --version
sha256sum (GNU coreutils) 8.13

दोनों ओएस पर manpages कहते हैं:

SYNOPSIS
       sha256sum [OPTION]... [FILE]...

DESCRIPTION
       Print or check SHA256 (256-bit) checksums.  With no FILE,
       or when FILE is -, read standard input.

[...]

       -c, --check
              read SHA256 sums from the FILEs and check them

जवाबों:


45

यह रिक्ति की परवाह करता है। यदि आप चलाते हैं:

sha256sum /dev/null

आपको मिला

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  /dev/null

(दो रिक्त स्थान)। जब आप echoउस तरह का उपयोग करते हैं, तो शब्दों के बीच केवल एक स्थान होता है।

संस्करण 8.13 सटीक प्रारूप चाहता है कि इसका आउटपुट अंदर है। यदि आप उपयोग करते हैं:

echo "$SUM  $FILE" | sha256sum -c

(फिर से, दो रिक्त स्थान) यह काम करना चाहिए। नए संस्करणों के बारे में परवाह नहीं है कि कितने रिक्त स्थान हैं, इसलिए यह उनके साथ भी काम करेगा।


18
जोड़ा गया सामान्य ज्ञान: दूसरा अंतरिक्ष वर्ण वास्तव में एक अर्थ है। यह दर्शाता है कि चेकसम की गणना टेक्स्ट मोड में की गई है । इसके विपरीत, *फ़ाइल नाम के सामने बाइनरी मोड को दर्शाता है । (बाइनरी मोड) के sha256sum -t /dev/nullसाथ sha256sum -b /dev/null( पाठ मोड, डिफ़ॉल्ट) के आउटपुट की तुलना करें । यह यूनिक्स / लिनक्स पर कोई फर्क नहीं पड़ता, जाहिरा तौर पर, लेकिन यह विंडोज पर हो सकता है
डब्यू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.