Powershellでの暗号化・復号化を行う関数
Powershellでの暗号化・復号化を行う関数
業務では、Windows Powershellにて自動化することが多いです。
自動化の中でサーバー構築から、運用保守のツール作成までを行っています。
そこで、管理者権限を持ったユーザーでリモート処理などを行うのですが、
設定ファイルにパスワードをそのまま記載するわけにはいかないため、
簡易的に設定ファイルを見ただけではわからないようにパスワードを暗号化して、
ツール内で復号するような作りをしています。
関数にしてあるので使いやすくなっているかと思います。
みなさんは自動化ツールなどで使っているパスワードなどはどのように管理していますか?
対象者
- 設定ファイル等にパスワードはそのまま記載したくない
- キーワードを使ったパスワードを使っていない($$とか)
暗号化
function Restore-Encrypt {
[CmdletBinding()]
param(
[parameter(Mandatory=$TRUE)]
[string]$PassWdStr
)
# Convert to base64
$StringToByte = [System.Text.Encoding]::UTF8.GetBytes($PassWdStr)
$Base64String = [System.Convert]::ToBase64String($StringToByte)
# Encryption Byte Array
[byte[]]$PasswdKey = (1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,99,99,99,99,99,99)
# Convert the string to be encrypted
$SecurePW = ConvertTo-SecureString -String $Base64String -AsPlainText -Force -ErrorAction stop
$EncryptString = ConvertFrom-SecureString -SecureString $SecurePW -key $PasswdKey
# Return after encryption
return $EncryptString
}
復号化
function Restore-Decrypt {
[CmdletBinding()]
param(
[parameter(Mandatory=$TRUE)]
[string]$PassWdStr
)
# Byte array for decoding
[byte[]]$PasswdKey = (1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,99,99,99,99,99,99)
# Convert encrypted strings
$ImportSecureString = $PassWdStr | ConvertTo-SecureString -Key $PasswdKey
$SecureStringToBSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($ImportSecureString)
$ToString = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($SecureStringToBSTR)
# Convert encrypted strings
$PasswordToByte = [System.Convert]::FromBase64String($ToString)
$DecryptString = [System.Text.Encoding]::UTF8.GetString($PasswordToByte)
# Return of decryption
return $DecryptString
}
カスタマイズするところ
[byte[]]$PasswdKeyについては、配列数を変えなければ中身の数字を好きに変えていただき、
自分のオリジナルのキー配列にしていただいて構いません。
また、その外出しにしてアレンジしてみてください。
Author And Source
この問題について(Powershellでの暗号化・復号化を行う関数), 我々は、より多くの情報をここで見つけました https://qiita.com/6b6169736569/items/7dffcd65847f45138ed9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .