PowerShell 技能连载 - 用口令对文本信息加密
适用于 PowerShell 3.0 及以上版本
在前一个技能中,我们介绍了如何使用 Windows 注册表中的 Windows 产品序列号来加密文本信息。
如果您觉得这种方式不够安全,那么可以使用自己指定的密钥来加密。以下例子演示了如何使用密码作为加密密钥:
$Path = "$env:temp\secret.txt"
$Secret = 'Hello World!'
$Passphrase = 'Some secret key'
$key = [Byte[]]($Passphrase.PadRight(24).Substring(0,24).ToCharArray())
$Secret |
ConvertTo-SecureString -AsPlainText -Force |
ConvertFrom-SecureString -Key $key |
Out-File -FilePath $Path
notepad $Path
要解密一段密文,您需要知道对应的密码:
$Passphrase = Read-Host 'Enter the secret pass phrase'
$Path = "$env:temp\secret.txt"
$key = [Byte[]]($Passphrase.PadRight(24).Substring(0,24).ToCharArray())
try
{
$decryptedTextSecureString = Get-Content -Path $Path -Raw |
ConvertTo-SecureString -Key $key -ErrorAction Stop
$cred = New-Object -TypeName System.Management.Automation.PSCredential('dummy', $decryptedTextSecureString)
$decryptedText = $cred.GetNetworkCredential().Password
}
catch
{
$decryptedText = '(wrong key)'
}
"The decrypted secret text: $decryptedText"
PowerShell 技能连载 - 用口令对文本信息加密
http://blog.vichamp.com/2015/04/07/encrypting-text-information-using-passphrase/