आइए कहें कि मुझे वेबसाइट द्वारा प्रदान किए गए हैश के विरुद्ध फ़ाइल के एमडी 5 हैश को सत्यापित करने की आवश्यकता है।

मैं हैश प्राप्त करने के लिए पॉवरशेल में certutil -hashfile .\amazon-corretto-11.0.10.9.1-windows-x64.msi md5 या Get-FileHash -Path .\amazon-corretto-11.0.10.9.1-windows-x64.msi -Algorithm md5 का उपयोग करता हूं, फिर मैं डाउनलोड वेबसाइट से हैश को देखता हूं, और पत्र द्वारा पत्र की तुलना करता हूं। क्या कमांड लाइन को तुलना करने देने का कोई तरीका है?

मैंने certutil -hashfile .\amazon-corretto-11.0.10.9.1-windows-x64.msi md5 | echo == "website_hash" की कोशिश की, लेकिन यह काम नहीं किया।

कमांड लाइन और पॉवरशेल में समाधान दोनों का स्वागत है।

0
fall 8 फरवरी 2021, 06:14

3 जवाब

सबसे बढ़िया उत्तर

मेरी टिप्पणी से जारी है। ये कोशिश करें:

Get-FileHash -Path 'D:\temp\book1.txt' -Algorithm MD5 | 
Format-Table -AutoSize
# Results
<#
Algorithm Hash                             Path             
--------- ----                             ----             
MD5       D572724F26BD600773F708AB264BE45B D:\temp\book1.txt
#>


$CompareObjectSplat = @{
    DifferenceObject = (Get-FileHash -Path 'D:\temp\book1.txt' -Algorithm MD5).Hash
    ReferenceObject  = (Get-FileHash -Path 'D:\temp\book1.txt' -Algorithm MD5).Hash
}
Compare-Object @compareObjectSplat -IncludeEqual

# Results
<#
InputObject                      SideIndicator
-----------                      -------------
D572724F26BD600773F708AB264BE45B == 
#>

# Get specifics for a module, cmdlet, or function
(Get-Command -Name Get-FileHash).Parameters
(Get-Command -Name Get-FileHash).Parameters.Keys
Get-help -Name Get-FileHash -Examples
Get-help -Name Get-FileHash -Full
Get-help -Name Get-FileHash -Online


(Get-Command -Name Compare-Object).Parameters
(Get-Command -Name Compare-Object).Parameters.Keys
Get-help -Name Compare-Object -Examples
Get-help -Name Compare-Object -Full
Get-help -Name Compare-Object -Online

आपको और आपकी अनुवर्ती क्वेरी के लिए mklement0 की सहायक प्रतिक्रिया के अनुसार इस पर टैग करना।

# Command line - executable
(certutil -hashfile 'D:\temp\book1.txt' md5)
# Results
<#
MD5 hash of D:\temp\book1.txt:
d572724f26bd600773f708ab264be45b
CertUtil: -hashfile command completed successfully.
#>

(certutil -hashfile 'D:\temp\book1.txt' md5)[1] -eq (certutil -hashfile 'D:\temp\book1.txt' md5)[1]
# Results
<#
True
#>
1
postanote 8 फरवरी 2021, 06:49

आप बस (...) में एक कमांड संलग्न कर सकते हैं, ग्रुपिंग ऑपरेटर, अगर आप चाहते हैं कि इसका आउटपुट ऑपरेटर के लिए एक ऑपरेंड के रूप में काम करे, जैसे -eq, समानता ऑपरेटर:

(certutil -hashfile .\amazon-corretto-11.0.10.9.1-windows-x64.msi md5)[1] -eq "website_hash"

नोट: postanote बताते हैं कि certutil एकाधिक लाइन को हैश के साथ आउटपुट करता है इंटरेस्ट दूसरी लाइन पर है, जो कि [1] इंडेक्स एक्सेस देता है, पॉवरशेल के आधार पर बाहरी प्रोग्राम से आउटपुट लाइनों को स्ट्रिंग्स की सरणी के रूप में लौटाता है .

2
mklement0 8 फरवरी 2021, 06:57

@postanote और @ mklement0 के उत्तरों के आधार पर, यहां 2 पॉवरशेल वन-लाइनर्स से लेकर बहुत फ़ाइल हैश तक हैं, दोनों मामलों को अनदेखा करते हैं।

प्रमाण पत्र:

(certutil -hashfile ./amazon-corretto-11.0.10.9.1-windows-x64.msi MD5)[1] -eq ("EE569A19016F233B2050CC11219EBBFD")

गेट-फाइलहैश:

Compare-Object -ReferenceObject (Get-FileHash -Path '.\amazon-corretto-11.0.10.9.1-windows-x64.msi' -Algorithm MD5).Hash -DifferenceObject ("EE569A19016F233B2050CC11219EBBFD") -IncludeEqual
0
fall 9 फरवरी 2021, 13:57