modules/shared/Mask.ps1
|
#Requires -Version 7.4 Set-StrictMode -Version Latest $ErrorActionPreference = 'Stop' function ConvertTo-MaskedId { [CmdletBinding()] param ( [AllowNull()] [object] $Id, [string] $Type, [switch] $IncludeSensitiveDetails ) if ($IncludeSensitiveDetails) { return $Id } if ($null -eq $Id) { return $null } $idText = $Id.ToString() if ([string]::IsNullOrWhiteSpace($idText)) { return $idText } switch -Regex ($Type) { '^(?i)tenantid$' { return '[tenant-id]' } '^(?i)(appid|objectid)$' { return ConvertTo-MaskedGuid -Value $idText } default { return $idText } } } function ConvertTo-MaskedGuid { param ( [Parameter(Mandatory)] [string] $Value ) if ($Value.Length -le 8) { return ('*' * $Value.Length) } $chars = $Value.ToCharArray() for ($i = 0; $i -lt $chars.Length; $i++) { if ($i -lt 4 -or $i -ge ($chars.Length - 4)) { continue } if ($chars[$i] -ne '-') { $chars[$i] = '*' } } return -join $chars } |