Yanıtlar:
Kullanabilirsiniz
openssl dgst -sha256 <file>
MacOS 10.14 (Mojave) üzerindeki LibreSSL 2.6.4'te test edilmiştir.
Mojave'den önce openssl sha -sha256 <file>
veya kullanabilirsiniz openssl sha256 <file>
.
Openssl sha komutu için komut satırı seçeneklerini kontrol etmek için: openssl sha -help
.
OS X, bir shasum komutuyla birlikte gelir .
> which shasum
/usr/bin/shasum
Kullanabilirsiniz:
> shasum -a 256 <file>
Daha fazla detay:
> 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
hiçbir şey
/usr/bin
isteğe bağlı şeylerle kirlenmemesini diliyorum . Bugün olayın böyle olduğunu doğrulamalıyım. Eğer gerçekten XCL kurulumundan geldiyse cevabı güncelleyecektir.
shasum
farklı bir karma döndürür openssl sha -sha256 <file>
(ikincisi doğru karma olur). Neden bir fikrin var mı?
shasum
, bir perl betiğidir, Digest::SHA
karma değerini hesaplamak için kullanılır. Aynı dosya için ben de kullanarak tam olarak aynı SHA olsun shasum
veya openssl
bir için SHA-256
karma hesaplama. Bakınız: gist.github.com/ianchesal/82a064b8971eb5e717ce84f3ded6dbfd
@ John'un yararlı cevabını açıklığa kavuşturmak için - verilen bir hash ile tek bir komutta dosyasını karşılaştırmanızı sağlar:
Giriş shasum -a 256 -c <<<
,
isteğe bağlı bir boşluk ve ardından
tek bir kene (ardından '
),
karşılaştırma karma, ardından
, bir boşluk ve ardından
ilk karma nasıl oluşturulduğuna göre, bir modu karakteri bunu takiben
karma, -t
seçenekle veya seçenek olmadan oluşturulduysa, hiçbir şey (metin modu, varsayılandır)
Yıldız işareti ( *
), eğer hash -b
(binary mode) ile yaratılmışsa
soru işareti ( ?
), karma -p
(taşınabilir mod) ile oluşturulmuşsa
caret ( ^
), karma -0
(bit modu) ile oluşturulmuşsa
ardından dosya yolunu
izledi , ardından bir kapanış tekli kene ( '
).
Aşağıdaki arıza gibi, hash ve filepath parçalarının çevresini sınırlandıran parenler ve isteğe bağlı "mod karakteri" kısmı etrafındaki köşeli parantezler. ( Parenleri veya braketleri gerçek hayata dahil etmeyin - parçaları görmeyi kolaylaştırmak için buradalar! )
shasum -a 256 -c <<< '(hashToCompare) [mode character](filepath)'
Bozuldu :
Asıl shasum komutushasum -a 256 -c
-a 256
söyler shasum
kullanmak SHA256 .
-c
shasum
sağlanan girişi "kontrol" etmesini söyler .
<<<
Bir "yönlendirme" operatörü olarak adlandırılan bir Unix / Linux özel karakter setidir. Önceden bir komuta bir şey beslemek için. Kullanarak, shasum
komutun girdi olarak kullanması için bir dizi bilgi sağlayacağımızı söylüyoruz .
Giriş bilgisi dizesinin, açılacak ve kapanması gereken tek keneler ( 'some string here'
veya bu durumda kontrol edilecek karma, mod karakteri ve dosya yolu) olması gerekir.
Karma dize içinde parçası özel bir şey gerekmez - ama bir boşluk gelmelidir.
Mod karakter parçası şey, bir yıldız (olabilir *
), bir soru işareti ( ?
) veya bir şapka ( ^
). Bu shasum
, karma değerin üretildiği modu söyler . (Not: metin modunu temsil eden hiçbir karakter shasum
varsayılan değildir.)
Filepath kısmı dosyaya fiili yolu kontrol edilmelidir.
Bu nedenle, söz konusu SHA-256 değerine karşı belirli bir MAMP indirme dosyasını kontrol eden gerçek hayattan bir örnek . Mod karakter çalışması için bu kontrol için gerekli:*
shasum -a 256 -c <<< 'f05ede012b8a5d0e7c9cf17fee0fa1eb5cd8131f3c703ed14ea347f25be11a28 *MAMP_MAMP_PRO_5.2.pkg'
Not: Bu komutun sonucu (örnek dosyam için) ya -
TAMAM:
MAMP_MAMP_PRO_5.2.pkg: Tamam
veya
BAŞARISIZ OLDU:
MAMP_MAMP_PRO_5.2.pkg:
Başarısız shasum: UYARI: 1 hesaplanan sağlama toplamı eşleşmedi
shasum -c <<< '7cb77378a0749f2a9b7e09ea62ffb13febf3759f *sample.txt'
mesajı döndürür *sample.txt: FAILED open or read
. Yıldız olmadan sample.txt: OK
. Yıldızın henüz başka bir yerde kullanımının temelini bulamadım. Aydınlatabilir misin?
--binary
isteğe bağlı olarak) oluşturulduğunu gösteriyor mu? Man sayfasından: "Kontrol yapılırken, giriş bu programın eski bir çıktısı olmalıdır. Varsayılan mod, sağlama karakterini içeren bir karakter, türünü belirten bir karakter yazdırmaktır ( *
ikili metin için,` `metin U
için, UNIVERSAL ^
için, BITS, ?
taşınabilir için) ve her DOSYA için ad. " Yani, sağlama toplamı ve dosya adı arasındaki karakterler sağlama toplamı oluşturulduğunda ayarlanan moda mı bağlı?