Private/Convert-FingerprintToBase36.ps1

function Convert-FingerprintToBase36 {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [string]$Fingerprint
    )

    $bytes = [System.Text.Encoding]::UTF8.GetBytes($Fingerprint)
    if ($bytes.Length -eq 0) {
        return ''
    }

    $unsignedBytes = New-Object byte[] ($bytes.Length + 1)
    [System.Array]::Copy($bytes, $unsignedBytes, $bytes.Length)
    $value = [System.Numerics.BigInteger]::new($unsignedBytes)

    if ($value -eq 0) {
        return '0'
    }

    $alphabet = '0123456789abcdefghijklmnopqrstuvwxyz'
    $sb = New-Object System.Text.StringBuilder

    while ($value -gt 0) {
        $remainder = [System.Numerics.BigInteger]::Remainder($value, 36)
        $value = [System.Numerics.BigInteger]::Divide($value, 36)
        $null = $sb.Insert(0, $alphabet[[int]$remainder])
    }

    return $sb.ToString()
}