パスワードを一括して暗号化する

スポンサーリンク

はじめに

CSVファイルに保存されたプレーンテキストのパスワードを暗号化します。

  • Input:PlainPassword.csv
  • Output:SecurePassword.csv

暗号化したパスワードはCredentialを生成する時に利用します。

環境

OS:Windows10
.Net Framework:4.7
PowerShellのバージョン:5.1.17763.1007

ソースコード

BulkPasswordEncryption.ps1

#######################################################################################
# 概要:プレーンテキストのパスワードを一括して暗号化します。
# 作成者:ITStudy
# 作成日:2020/05/28
# 必要なファイル:BulkPasswordEncryption.ps1(このファイルです)
#                 PlainPassword.csv(パスワードファイルです)
#######################################################################################

$CurrentDir     = $PSScriptRoot
$Input          = "PlainPassword.csv"
$Output         = "SecurePassword.csv"
$SecurePassword = @()

function Encryption($PlainPassword ){

    #プレーンテキストをSecureStringオブジェクトに変換する
    $secure = ConvertTo-SecureString -string $PlainPassword -AsPlainText -Force

    #SecureStringオブジェクトを暗号化された標準文字列に変換する
    $encrypt = ConvertFrom-SecureString -SecureString $secure

    Return $encrypt
}

Import-Csv (Join-Path $CurrentDir $Input) -Encoding Default | %{
    $SecurePassword += [pscustomobject]@{"HostName"=$_.HostName; "IP"=$_.IP; "UserName"=$_.UserName; "Password"=Encryption($_.Password)}
}

#CSV出力
$SecurePassword | Export-Csv -NoTypeInformation (Join-Path $CurrentDir $Output) -Encoding Default

PlainPassword.csv

HostName,IP,UserName,Password
windows2003,192.168.xxx.xxx,administrator,pass123
windows2008,192.168.xxx.xxx,administrator,pass123
windows2012,192.168.xxx.xxx,administrator,pass123
windows2016,192.168.xxx.xxx,administrator,pass123
windows2019,192.168.xxx.xxx,administrator,pass123

SecurePassword.csv

暗号化したパスワードは文字数がかなり長いのですが、わかりやすくするために短くしています。

HostName,IP,UserName,Password
windows2003,192.168.xxx.xxx,administrator,N&Y7rkV%i4EGmtZx
windows2008,192.168.xxx.xxx,administrator,N&Y7rkV%i4EGmtZx
windows2012,192.168.xxx.xxx,administrator,N&Y7rkV%i4EGmtZx
windows2016,192.168.xxx.xxx,administrator,N&Y7rkV%i4EGmtZx
windows2019,192.168.xxx.xxx,administrator,N&Y7rkV%i4EGmtZx

今回、出力ファイルは別の名前を指定していますが、これだとPlainPassword.csvファイルを開くとパスワードがばれてしまいます。InputとOutputを同じ名前にすると平文のパスワードを暗号化したファイルに置き換えることができるのでこちらの方が安全ですね。

タイトルとURLをコピーしました