次の方法で共有


ConvertFrom-SecureString

セキュリティで保護された文字列を暗号化された標準文字列に変換します。

構文

ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [[-SecureKey] <SecureString>]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-AsPlainText]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-Key <Byte[]>]
                [<CommonParameters>]

説明

ConvertFrom-SecureString コマンドレットは、セキュリティで保護された文字列 (System.Security.SecureString) を暗号化された標準文字列 (System.String) に変換します。 セキュリティで保護された文字列とは異なり、暗号化された標準文字列は、ファイルに保存して後で使用することができます。 暗号化された標準文字列は、 ConvertTo-SecureString コマンドレットを使用して、セキュリティで保護された文字列形式に戻すことができます。

暗号化キーが Key または SecureKey パラメーターを使用して指定されている場合は、Advanced Encryption Standard (AES) 暗号化アルゴリズムが使用されます。 指定するキーの長さは、AES 暗号化アルゴリズムによってサポートされている 128、192、または 256 ビットにする必要があります。 キーを指定しない場合には、Windows データ保護 API (DPAPI) が使用されて標準文字列の表現が暗号化されます。

Note

DotNet ごとに、SecureString の内容は Windows 以外のシステムでは暗号化されないことに注意してください。

例 1: セキュリティで保護された文字列を作成する

$SecureString = Read-Host -AsSecureString

このコマンドは、コマンド プロンプトで入力した文字からセキュリティで保護された文字列を作成します。 コマンドを入力した後で、セキュリティで保護された文字列として格納する文字列を入力します。 入力した各文字を表すアスタリスク (*) が表示されます。

例 2: セキュリティで保護された文字列を暗号化された標準文字列に変換する

$StandardString = ConvertFrom-SecureString $SecureString

このコマンドは、 $SecureString 変数内のセキュリティで保護された文字列を暗号化された標準文字列に変換します。 結果として得られる暗号化された標準文字列は、 $StandardString 変数に格納されます。

例 3: 192 ビット キーを使用して、セキュリティで保護された文字列を暗号化された標準文字列に変換する

$Key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)
$StandardString = ConvertFrom-SecureString $SecureString -Key $Key

これらのコマンドでは、Advanced Encryption Standard (AES) アルゴリズムを使用して、 $SecureString 変数に格納されているセキュリティで保護された文字列を、192 ビット キーを使用して暗号化された標準文字列に変換します。 結果として得られる暗号化された標準文字列は、 $StandardString 変数に格納されます。

最初のコマンドは、 $Key 変数にキーを格納します。 キーは 24 桁の 10 進数の配列で、1 つの符号なしバイト内に収まるには、それぞれ 256 未満である必要があります。

各 10 進数は 1 バイト (8 ビット) を表しているため、キーには合計 192 ビット (8 x 24) の 24 桁の数字があります。 これは、AES アルゴリズムの有効なキー長さです。

2 番目のコマンドでは、 $Key 変数のキーを使用して、セキュリティで保護された文字列を暗号化された標準文字列に変換します。

例 4: セキュリティで保護された文字列をプレーンテキスト文字列に直接変換する

$secureString = ConvertTo-SecureString -String 'Example' -AsPlainText
$secureString # 'System.Security.SecureString'
ConvertFrom-SecureString -SecureString $secureString -AsPlainText # 'Example'

パラメーター

-AsPlainText

設定すると、 ConvertFrom-SecureString は、セキュリティで保護された文字列を暗号化解除されたプレーンテキスト文字列に出力として変換します。

このパラメーターは PowerShell 7.0 で追加されました。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Key

暗号化キーを、バイト配列として指定します。

型:Byte[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SecureKey

暗号化キーを、セキュリティで保護された文字列として指定します。 セキュリティで保護された文字列値は、キーとして使用される前に、バイト配列に変換されます。

型:SecureString
配置:1
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SecureString

暗号化された標準文字列に変換するセキュリティで保護された文字列を指定します。

型:SecureString
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

入力

SecureString

SecureString オブジェクトをこのコマンドレットにパイプできます。

出力

String

このコマンドレットは、作成されたプレーンテキスト文字列を返します。

メモ

  • コマンド プロンプトで入力した文字からセキュリティで保護された文字列を作成するには、Read-Host コマンドレットの AsSecureString パラメーターを使用します。
  • Key または SecureKey パラメーターを使用してキーを指定する場合は、キーの長さが正しい必要があります。 たとえば、128 ビットのキーは、16 桁の 10 進数のバイト配列として指定できます。 同様に、192 ビットおよび 256 ビットのキーは、それぞれ 24 桁と 32 桁の 10 進数のバイト配列に対応します。
  • 絵文字などの一部の文字は、それらを含む文字列内のいくつかのコード ポイントに対応します。 これらの文字は、パスワードで使用すると問題や誤解を引き起こす可能性があるため、使用しないでください。