Functions/Public/New-AesCryptoKeyAsHex.ps1

function New-AesCryptoKeyAsHex
{
    <#
    .SYNOPSIS
        Generates a new cryptographically random 256-bit AES crypto key, formatted as a hex string.
 
    .DESCRIPTION
        Generates a new cryptographically random 256-bit AES crypto key, formatted as a hex string. This function is useful for API operations that require a new fresh key to be generated and supplied from the client.
 
    .PARAMETER AadClientAppId
        The AAD client application ID.
 
    .EXAMPLE
        C:\> New-AesCryptoKeyAsHex
        Returns a new 256-bit AES crypto key, formatted as a hex string.
    #>

    [CmdletBinding()]
    Param
    (
    )
    Process
    {
        # new instance of the AES crypto .net class
        # it auto-generates a new IV and Key on class instantiation...
        $aes = New-Object -TypeName 'System.Security.Cryptography.AesManaged';

        # convert the crypto key (byte array) to the desired format and return it
        $result = [System.BitConverter]::ToString($aes.Key).Replace("-", "");
        Write-Output -InputObject $result;
    }
}