Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Výpočet SHA-1 pomocí PowerShellu
prosinec 18
Výpočet SHA-1 pomocí PowerShellu

Jak se v PowerShell vypočítá SHA-1 hash nějakého textového řetězce? Tu to je:

$name = 'zkusebni retezec'
$nameBytes = [System.Text.ASCIIEncoding]::ASCII.GetBytes($name)

$sha = New-Object System.Security.Cryptography.SHA1CryptoServiceProvider
$hashBytes = $sha.ComputeHash($nameBytes)

# bytes array (20 bytes as SHA-1 is always 160bits)
$hashBytes

# the same in Base64
[Convert]::ToBase64String($hashBytes)

# the same in Hex
[BitConverter]::ToString($hashBytes)

A to je pro dnešek všechno :-)

Comments

Re: Výpočet SHA-1 pomocí PowerShellu

jo, pokud chcete SHA256, tak jenom nahraďte SHA1CryptoServiceProvider za SHA256CryptoServiceProvider.

Stejně tak, pokud bych potřeboval SHA384, tak se to jmenuje SHA384CryptoServiceProvider

A pro SHA512 je to SHA512CryptoServiceProvider. Jak jednoduché.
ondass on 18.12.2012 14:26

Re: Výpočet SHA-1 pomocí PowerShellu

a rovnou jsem ještě změřil rychlosti. Na mém stroji trvá výpočet 1 000 000 heší takto dlouho:

SHA-1: 11 sec.
SHA256: 13 sec.
SHA384: 17 sec.
SHA512: 18 sec.

Tak je pěkně vidět, že je zbytečné používat delší heše s jinak slabými algoritmy (viz. https://www.sevecek.com/Lists/Posts/Post.aspx?ID=145 )
ondass on 18.12.2012 14:44

Re: Výpočet SHA-1 pomocí PowerShellu

ondass on 13.1.2016 17:56

Add Comment

Sorry comments are disable due to the constant load of spam *


Omlouvám se, ale příval spamu nelze kontrolovat, takže mi prosím pošlete email, pokud máte nějaký dotaz, nebo připomínku.

Title


Pole Title nemusíte vyplňovat, doplní se to samo na stejnou hodnotu jako je nadpis článku.

Author *


Pole Author nesmí být stejné jako pole Title! Mám to tu jako ochranu proti spamu. Roboti to nevyplní dobře :-)

Body *


Email


Emailová adresa, pokud na ni chcete ode mě dostat odpověď. Nikdo jiný než já vaši emailovou adresu neuvidí.

Attachments