2017-02-24 125 views
1

AESで暗号化されたパスワードを解読する方法を説明する多数のハウツー記事に従ってきました。どのように試しても、パスワードはSystem.Security.SecureStringとして表示される$ passwordで終わります。 Windowsのアクセス許可(ADSI/LDAP)を使用しないコマンドラインユーティリティを呼び出すので、プレーンテキストでエコーするにはパスワードが必要です。ここにスクリプトがあります:AESで暗号化されたパスワードをPowerShellスクリプトのプレーンテキストに復号する

$PasswordFile = "$PSScriptRoot\PowerShell\AESpassword.txt" 
$KeyFile = "$PSScriptRoot\PowerShell\AES.key" 
$key = Get-Content $KeyFile 
$MyPassword = ConvertTo-SecureString (Get-Content $PasswordFile | ConvertTo-SecureString -Key $key) -AsPlainText -Force 
$Marshal = [System.Runtime.InteropServices.Marshal] 
$BSTR = $Marshal::SecureStringToBSTR($MyPassword) 
$password = $Marshal::PtrToStringAuto($BSTR) 
+3

なぜConvertTo-SecureStringを2回呼び出すのですか? '$ MyPassword = Get-Content $ PasswordFile | ConvertTo-SecureString -Key $ key'で十分です。 –

+0

ええ、最初に復号化されたパスワードで 'ConvertTo-SecureString'を呼び出し、それが安全な文字列であると訴えますか? –

+0

あなたのご提案$ MyPassword = Get-Content $ PasswordFile | ConvertTo-SecureString - Key $ keyは魅力的に機能しました!どうもありがとうございます!私はあなたのためにそれを信用できるように、答えとしてそのコメントを投稿することを確認してください。 :) – bbcompent1

答えて

0

@MathiasRJessenによると、$ MyPassword = Get-Content $ PasswordFile | ConvertTo-SecureString - Key $ keyは魅力的に機能しました!どうもありがとうございます!私はあなたのためにそれを信用できるように、答えとしてそのコメントを投稿することを確認してください。 :)

関連する問題