Get-FileHash
Kiszámítja egy fájl kivonatértékét egy megadott kivonatoló algoritmus használatával.
Syntax
Get-FileHash
[-Path] <String[]>
[[-Algorithm] <String>]
[<CommonParameters>]
Get-FileHash
[-LiteralPath] <String[]>
[[-Algorithm] <String>]
[<CommonParameters>]
Get-FileHash
[-InputStream] <Stream>
[[-Algorithm] <String>]
[<CommonParameters>]
Description
A Get-FileHash
parancsmag kiszámítja egy fájl kivonatértékét egy megadott kivonatoló algoritmus használatával.
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. Bár egyes kivonatoló algoritmusok, például az MD5 és az SHA1 már nem tekinthetők támadás elleni védelemnek, a biztonságos kivonatoló algoritmus célja, hogy lehetetlenné tegye egy fájl tartalmának módosítását – akár véletlenül, akár rosszindulatú vagy jogosulatlan kísérlet útján –, és ugyanazt a kivonatértéket tartsa fenn. 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.
A parancsmag alapértelmezés szerint Get-FileHash
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 fájl kivonatértékének kiszámítása
Ez a példa a Get-FileHash
parancsmaggal számítja ki a fájl kivonatértékét /etc/apt/sources.list
. A használt kivonatoló algoritmus az alapértelmezett SHA256. A kimenetet a Format-List
parancsmagra csövezve formázza a kimenetet listaként.
Get-FileHash /etc/apt/sources.list | Format-List
Algorithm : SHA256
Hash : 3CBCFDDEC145E3382D592266BE193E5BE53443138EE6AB6CA09FF20DF609E268
Path : /etc/apt/sources.list
2. példa: Egy ISO-fájl kivonatértékének kiszámítása
Ez a példa 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.
Get-FileHash C:\Users\user1\Downloads\Contoso8_1_ENT.iso -Algorithm SHA384 | Format-List
Algorithm : SHA384
Hash : 20AB1C2EE19FC96A7C66E33917D191A24E3CE9DAC99DB7C786ACCE31E559144FEAFC695C58E508E2EBBC9D3C96F21FA3
Path : C:\Users\user1\Downloads\Contoso8_1_ENT.iso
3. példa: Stream kivonatértékének kiszámítása
Ebben a példában a System.Net.WebClient használatával töltünk le egy csomagot a PowerShell kiadási oldaláról. A kiadási oldal az egyes csomagfájlok SHA256 kivonatát is dokumentálja. Összehasonlíthatjuk a közzétett kivonat értékét a kiszámított értékkel Get-FileHash
.
$wc = [System.Net.WebClient]::new()
$pkgurl = 'https://github.com/PowerShell/PowerShell/releases/download/v6.2.4/powershell_6.2.4-1.debian.9_amd64.deb'
$publishedHash = '8E28E54D601F0751922DE24632C1E716B4684876255CF82304A9B19E89A9CCAC'
$FileHash = Get-FileHash -InputStream ($wc.OpenRead($pkgurl))
$FileHash.Hash -eq $publishedHash
True
4. példa: Egy sztring kivonatának kiszámítása
A PowerShell nem biztosít parancsmagot egy sztring kivonatának kiszámításához. Azonban írhat egy sztringet egy streambe, és az InputStream paraméterrel Get-FileHash
lekérheti a kivonat értékét.
$stringAsStream = [System.IO.MemoryStream]::new()
$writer = [System.IO.StreamWriter]::new($stringAsStream)
$writer.write("Hello world")
$writer.Flush()
$stringAsStream.Position = 0
Get-FileHash -InputStream $stringAsStream | Select-Object Hash
Hash
----
64EC88CA00B268E5BA1A35678A1B5316D212F4F366B2477232534A8AECA37F3C
Paraméterek
-Algorithm
Megadja a megadott fájl vagy stream 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 rendelkezik azzal a tulajdonsággal, hogy nem érhető el két különböző, azonos kivonatértékkel rendelkező fájl megkeresése. 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
- MD5
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.
Típus: | String |
Elfogadott értékek: | SHA1, SHA256, SHA384, SHA512, MD5 |
Position: | 1 |
Alapértelmezett érték: | SHA256 |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-InputStream
Megadja a bemeneti adatfolyamot.
Típus: | Stream |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-LiteralPath
Megadja a fájl elérési útját. Az Elérési út paramétertől eltérően a LiteralPath paraméter értékét pontosan a beírt módon használja a rendszer. 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.
Típus: | String[] |
Aliasok: | PSPath, LP |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | 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.
Típus: | String[] |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | True |
Bevitelek
A parancsmaghoz egy fájl elérési útját tartalmazó sztringet csövezhet.
Kimenetek
Microsoft.PowerShell.Utility.FileHash
Ez a parancsmag 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.