Get-FileHash
Kiszámítja egy fájl kivonatértékét egy megadott kivonatoló algoritmus használatával.
Syntax
Path (Alapértelmezett)
Get-FileHash
[-Path] <String[]>
[-Algorithm <String>]
[<CommonParameters>]
LiteralPath
Get-FileHash
-LiteralPath <String[]>
[-Algorithm <String>]
[<CommonParameters>]
Stream
Get-FileHash
-InputStream <Stream>
[-Algorithm <String>]
[<CommonParameters>]
Description
A Get-FileHash parancsmag egy adott kivonatoló algoritmus használatával kiszámítja a fájl kivonatértékét. A kivonat értéke a fájl tartalmának megfelelő egyedi érték. Ahelyett, hogy egy fájl tartalmát fájlnév, kiterjesztés vagy más megjelölés alapján azonosítanák, a kivonat egyedi értéket rendel a fájl tartalmához. A fájlnevek és a bővítmények a fájl tartalmának módosítása és a kivonatérték módosítása nélkül módosíthatók. Hasonlóképpen, a fájl tartalma a név vagy a bővítmény módosítása nélkül is módosítható. A fájl tartalmának egyetlen karakterének módosítása azonban megváltoztatja a fájl kivonatértékét.
A kivonatértékek célja egy kriptográfiailag biztonságos módszer biztosítása annak ellenőrzésére, hogy a fájl tartalma nem módosult-e. Míg egyes kivonatalgoritmusokat, például az MD5-öt és az SHA1-et, már nem tekintik biztonságosnak a támadásokkal szemben, a biztonságos kivonatoló algoritmus célja, hogy lehetetlenné tegye a fájlok tartalmának véletlen vagy rosszindulatú vagy jogosulatlan megkísérlésével történő módosítását, és fenntartsa ugyanazt a kivonatértéket. Kivonatértékekkel azt is megállapíthatja, hogy két különböző fájl tartalma pontosan azonos-e. Ha két fájl kivonatértéke azonos, a fájlok tartalma is azonos.
Alapértelmezés szerint a Get-FileHash parancsmag az SHA256 algoritmust használja, bár a cél operációs rendszer által támogatott kivonatoló algoritmusok használhatók.
Példák
1. példa: Egy PowerShell.exe fájl kivonatértékének kiszámítása
PS C:\> Get-FileHash $pshome\powershell.exe | Format-List
Algorithm : SHA256
Hash : 6A785ADC0263238DAB3EB37F4C185C8FBA7FEB5D425D034CA9864F1BE1C1B473
Path : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Ez a parancs a Get-FileHash parancsmagot használja a Powershell.exe fájl kivonatértékének kiszámításához. A használt kivonatoló algoritmus az alapértelmezett SHA256. A kimenetet a Format-List parancsmagra csövezve formázza a kimenetet listaként.
2. példa: Egy ISO-fájl kivonatértékének kiszámítása
PS C:\> Get-FileHash C:\Users\Andris\Downloads\Contoso8_1_ENT.iso -Algorithm SHA384 | Format-List
Algorithm : SHA384
Hash : 20AB1C2EE19FC96A7C66E33917D191A24E3CE9DAC99DB7C786ACCE31E559144FEAFC695C58E508E2EBBC9D3C96F21FA3
Path : C:\Users\Andris\Downloads\Contoso8_1_ENT.iso
Ez a parancs a Get-FileHash parancsmagot és az SHA384 algoritmust használja egy olyan ISO-fájl kivonatértékének kiszámításához, amelyet a rendszergazda letöltött az internetről. A kimenetet a Format-List parancsmagra csövezve formázza a kimenetet listaként.
3. példa: Egy stream kivonatértékének kiszámítása és az eljárás összehasonlítása a fájl kivonatának közvetlen lekérésével
# Path of Microsoft.PowerShell.Utility.psd1
$file = (Get-Module Microsoft.PowerShell.Utility).Path
$hashFromFile = Get-FileHash -Path $file -Algorithm MD5
# Open $file as a stream
$stream = [System.IO.File]::OpenRead($file)
$hashFromStream = Get-FileHash -InputStream $stream -Algorithm MD5
$stream.Close()
Write-Host '### Hash from File ###' -NoNewline
$hashFromFile | Format-List
Write-Host '### Hash from Stream ###' -NoNewline
$hashFromStream | Format-List
# Check both hashes are the same
if ($hashFromFile.Hash -eq $hashFromStream.Hash) {
Write-Host 'Get-FileHash results are consistent' -ForegroundColor Green
} else {
Write-Host 'Get-FileHash results are inconsistent!!' -ForegroundColor Red
}
### Hash from File ###
Algorithm : MD5
Hash : 593D6592BD9B7F9174711AB136F5E751
Path : C:\WINDOWS\System32\WindowsPowerShell\v1.0\Modules\Microsoft.Powe
rShell.Utility\Microsoft.PowerShell.Utility.psd1
### Hash from Stream ###
Algorithm : MD5
Hash : 593D6592BD9B7F9174711AB136F5E751
Path :
Get-FileHash results are consistent
Paraméterek
-Algorithm
Megadja a megadott fájl tartalmának kivonatértékének kiszámításához használandó titkosítási kivonatfüggvényt. A titkosítási kivonatoló függvény tartalmazza azt a tulajdonságot, hogy nem lehet két különböző bemenetet találni, amelyek ugyanazt a kivonatértéket generálják. A kivonatfüggvényeket általában digitális aláírásokkal és adatintegritással használják. A paraméter elfogadható értékei a következők:
- SHA1
- SHA256
- SHA384
- SHA512
- MACTripleDES
- MD5
- RIPEMD160
Ha nincs megadva érték, vagy ha a paraméter nincs megadva, az alapértelmezett érték SHA256.
Biztonsági okokból a már nem biztonságosnak tekintett MD5 és SHA1 csak egyszerű módosítás-ellenőrzésre használható, és nem használható olyan fájlok kivonatértékeinek létrehozására, amelyek védelmet igényelnek a támadás vagy illetéktelen módosítás ellen.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Elfogadott értékek: | SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5, RIPEMD160 |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-InputStream
Megadja a bemeneti adatfolyamot.
Paramétertulajdonságok
| Típus: | Stream |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
Stream
| Position: | Named |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-LiteralPath
Megadja a fájl elérési útját. A Path paramétertől eltérően a LiteralPath paraméter értéke pontosan a beíráskor lesz használva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési út tartalmaz feloldó karaktereket, az elérési utat egyetlen idézőjelbe kell foglalnia. Az idézőjelek arra utasítják a PowerShellt, hogy ne értelmezze a karaktereket menekülési sorozatként.
Paramétertulajdonságok
| Típus: | String[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
| Aliasok: | PSPath |
Paraméterkészletek
LiteralPath
| Position: | Named |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
-Path
Egy vagy több fájl elérési útját adja meg tömbként. A helyettesítő karakterek használata engedélyezett.
Paramétertulajdonságok
| Típus: | String[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | True |
| DontShow: | False |
Paraméterkészletek
Path
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CommonParameters
Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.
Bevitelek
String
Sztringet a Get-FileHash parancsmagra helyezhet, amely egy vagy több fájl elérési útját tartalmazza.
Kimenetek
Microsoft.PowerShell.Utility.FileHash
Get-FileHash egy objektumot ad vissza, amely a megadott fájl elérési útját, a kiszámított kivonat értékét és a kivonat kiszámításához használt algoritmust jelöli.