ในการตรวจสอบ sha1 ของไฟล์ฉันจะใช้openssl sha1 <file>
ฉันไม่แน่ใจว่าจะใช้อะไรเพื่อตรวจสอบแฮช sha256 ของไฟล์อย่างไรก็ตามคุณจะแนะนำอะไร
ในการตรวจสอบ sha1 ของไฟล์ฉันจะใช้openssl sha1 <file>
ฉันไม่แน่ใจว่าจะใช้อะไรเพื่อตรวจสอบแฮช sha256 ของไฟล์อย่างไรก็ตามคุณจะแนะนำอะไร
คำตอบ:
คุณสามารถใช้ได้
openssl dgst -sha256 <file>
ทดสอบกับ LibreSSL 2.6.4 บน macOS 10.14 (โมฮาวี)
ก่อนที่จะซ้อมคุณสามารถใช้หรือopenssl sha -sha256 <file>
openssl sha256 <file>
ในการตรวจสอบตัวเลือกบรรทัดคำสั่งสำหรับคำสั่ง OpenSSL openssl sha -help
หม่านี้:
เรือ OS X มีคำสั่ง shasum
> 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
เป็นสคริปต์ perl ใช้Digest::SHA
ในการคำนวณค่าแฮช สำหรับไฟล์เดียวกันที่ฉันได้รับที่แน่นอน SHA เดียวกันโดยใช้อย่างใดอย่างหนึ่งshasum
หรือopenssl
สำหรับSHA-256
การคำนวณกัญชา ดู: gist.github.com/ianchesal/82a064b8971eb5e717ce84f3ded6dbfd
shasum
เรือคำสั่งกับ OSX สำหรับขณะนี้ มันจะให้ผลลัพธ์เช่นเดียวกับopenssl sha -sha256
เมื่อใช้การshasum
ใช้-a 256
ตัวเลือก
ในการชี้แจงคำตอบที่เป็นประโยชน์ของ @ John - ซึ่งช่วยให้คุณสามารถเปรียบเทียบแฮชที่ระบุกับไฟล์ในคำสั่งเดียว:
ใส่shasum -a 256 -c <<<
,
ตามด้วยพื้นที่เลือก
ตามด้วยขีดเดียว ( '
)
ตามด้วยกัญชาเพื่อเปรียบเทียบ
ตามด้วยช่องว่าง,
ตามด้วยโหมดตัวอักษรขึ้นอยู่กับวิธีการเริ่มต้นกัญชาถูกสร้าง:
ไม่มีอะไรเลยถ้าแฮชถูกสร้างโดยมี-t
หรือไม่มีตัวเลือก (โหมดข้อความซึ่งเป็นค่าเริ่มต้น)
เครื่องหมายดอกจัน ( *
) ถ้าแฮชถูกสร้างด้วย-b
(โหมดไบนารี)
เครื่องหมายคำถาม ( ?
) ถ้าแฮชถูกสร้างด้วย-p
(โหมดพกพา)
caret ( ^
) ถ้าแฮชถูกสร้างด้วย-0
(โหมดบิต)
ตามด้วยพา ธ ไปยังไฟล์
ตามด้วยเครื่องหมายปิดเดี่ยว ( '
)
เช่นรายละเอียดต่อไปนี้ด้วยการกำหนด parens รอบส่วนแฮชและ filepath และวงเล็บเหลี่ยมรอบส่วน "โหมดอักขระ" ที่เป็นตัวเลือก ( อย่ารวม parens หรือ brackets ในชีวิตจริง - พวกเขาอยู่ที่นี่เพื่อทำให้ส่วนต่าง ๆ มองเห็นได้ง่าย! )
shasum -a 256 -c <<< '(hashToCompare) [mode character](filepath)'
พังทลายลง :
คำสั่งshasum ที่แท้จริงคือshasum -a 256 -c
-a 256
บอกshasum
จะใช้SHA256
-c
บอกshasum
ให้ "ตรวจสอบ" การป้อนข้อมูลที่ให้ไว้
<<<
เป็น Unix / Linux ชุดอักขระพิเศษที่เรียกว่า "การเปลี่ยนเส้นทาง" ผู้ประกอบการ มันใช้สำหรับป้อนบางสิ่งให้เป็นคำสั่งก่อนหน้า โดยการใช้มันเรากำลังบอกว่าเราจะให้สตริงของข้อมูลสำหรับ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:
FAASED shasum: คำเตือน: 1 checksum ที่คำนวณได้ไม่ตรงกัน
shasum -c <<< '7cb77378a0749f2a9b7e09ea62ffb13febf3759f *sample.txt'
*sample.txt: FAILED open or read
ส่งกลับข้อความ sample.txt: OK
โดยไม่ต้องดอกจัน, ฉันยังไม่สามารถค้นหาพื้นฐานของการใช้ดอกจันที่อื่นได้ คุณช่วยอธิบายได้ไหม
--binary
ตัวเลือก) หรือไม่ จากหน้า man: "เมื่อทำการตรวจสอบ input ควรเป็น output ก่อนหน้าของโปรแกรมนี้โหมดเริ่มต้นคือการพิมพ์บรรทัดที่มี checksum อักขระที่ระบุประเภท ( *
สำหรับไบนารี` `สำหรับข้อความU
สำหรับ UNIVERSAL ^
สำหรับ BITS ?
สำหรับพกพา) และชื่อไฟล์แต่ละไฟล์ " ดังนั้นตัวละครระหว่าง checksum และชื่อไฟล์จึงขึ้นอยู่กับโหมดที่ตั้งไว้เมื่อสร้าง checksum?
ฉันจะใช้คำสั่งนี้
shasum -a 256 -c <<<'_paste hash to compare here_ *_path to file goes here_'
ตัวอย่าง:
shasum -a 256 -c <<< '0d2ea6de4f2cbd960abb6a6e020bf6637423c07242512596691960fcfae67206 */Users/USERNAME/Downloads/someprogram.dmg'