Powershell Password Encryption and Decryption
Encrypte and Decrypt credential:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| $EncryptKey = New-Object Byte[] 16 [Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($EncryptKey) $EncryptKey| Out-File C:\key.txt
$UserCred = Get-Credential $UserCred.Password | ConvertFrom-SecureString -Key $EncryptedKey | Out-File C:\encrypted.txt
$User = 'TestUser' $SecureKey = Get-Content C:\Key.txt | ConvertTo-SecureString $SecurePassword = Get-Content C:\encrypted.txt | ConvertTo-SecureString -SecureKey $SecureKey $UserCred = New-Object System.Management.Automation.PSCredential ($User, $SecurePassword) Get-WmiObject -Class win32_OperatingSystem -ComputerName RemoteServerA -Credential $UserCred
|
Encrypt and Decrypt password:
1 2 3 4 5 6 7 8
| $Password = "Password123" $PasswordBytes = [System.Text.Encoding]::Unicode.GetBytes($Password) $SecurePassword = [Security.Cryptography.ProtectedData]::Protect($PasswordBytes, $null, [Security.Cryptography.DataProtectionScope]::LocalMachine) $SecurePasswordStr = [System.Convert]::ToBase64String($SecurePassword)
$SecureStr = [System.Convert]::FromBase64String($SecurePasswordStr) $StringBytes = [Security.Cryptography.ProtectedData]::Unprotect($SecureStr, $null, [Security.Cryptography.DataProtectionScope]::LocalMachine) $PasswordStr = [System.Text.Encoding]::Unicode.GetString($StringBytes)
|