Neden SHA256 sağlama toplamı 'sha256sum' ile doğrulanıyor Debian'da başarısız oluyor ve Ubuntu'da çalışıyor?


34

Ubuntu 14.04 tarihinde, sha256sumgelen coreutilsişlerin beklediğim gibi:

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

Ancak, Debian Wheezy'deki aynı dosyadaki aynı komut başarısız olur:

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

Bunu anlamıyorum. Debian'da bir kabuk betiğinde sağlama toplamı güvenilir bir şekilde nasıl doğrulayabilirim?


Ubuntu 14.04 tarihinde:

⟫ sha256sum --version
sha256sum (GNU coreutils) 8.21

Wheezy'de:

$ sha256sum --version
sha256sum (GNU coreutils) 8.13

her iki işletim sistemindeki 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

Yanıtlar:


45

Boşluklarla ilgileniyor. Eğer koşarsan:

sha256sum /dev/null

sen al

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  /dev/null

(iki boşluk). Böyle kullandığın zaman echo, kelimeler arasında sadece bir boşluk var.

Sürüm 8.13 , çıktısının bulunduğu biçimin tam olmasını ister. Kullanırsanız :

echo "$SUM  $FILE" | sha256sum -c

(yine, iki boşluk) çalışması gerekir. Daha yeni sürümler kaç tane boşluk olduğu ile ilgilenmez, bu yüzden onlarla da çalışacaktır.


18
Eklenen trivia: İkinci boşluk karakterinin aslında bir anlamı vardır. Metin toplamında sağlama toplamının hesaplandığını gösterir . Buna karşılık, *dosya adının önündeki bir ikili modu belirtir . sha256sum -t /dev/null(Metin modu, varsayılan) çıktısını sha256sum -b /dev/null(ikili mod) ile karşılaştırın. Bu, görünüşe göre Unix / Linux'ta bir fark yaratmıyor, ancak Windows'ta da olabilir .
Dubu
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.