strings/Get-StringHash.ps1

function Get-StringHash {
    <#
.SYNOPSIS
Returns hash from a string

.DESCRIPTION
Returns hash from an input string using given hash algorithm.
Default algorithm is: 'MD5'

.PARAMETER String
String to be hashed

.PARAMETER HashName
Hash algorithm name

.EXAMPLE
Get-StringHash "test"
Returns hash from string 'test'

.EXAMPLE
Get-StringHash 'test' -HashName "sha256"
Returns hash from string 'test' using 'sha256' algorithm

#>


    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, Position = 0)]
        [String]$String,
        [Parameter(Mandatory = $false, Position = 1)]
        [String]$HashName = "MD5"
    )

    process {
        $StringBuilder = New-Object System.Text.StringBuilder
        [System.Security.Cryptography.HashAlgorithm]::Create($HashName).ComputeHash([System.Text.Encoding]::UTF8.GetBytes($String)) | % {
            [Void]$StringBuilder.Append($_.ToString("x2"))
        }
        $StringBuilder.ToString()
    }
}