IBM Cloud Docs
base64 でエンコードした暗号鍵の作成

base64 でエンコードした暗号鍵の作成

このセクションでは、適切な鍵作成のために鍵の値を base64-encode にする方法について説明します。 これは、 MD5 認証と、MACsec 機能を有効にする場合に必要です。

以下の例では、オペレーティング・システムですぐに利用できるユーティリティーを使用して、エンコードされた鍵ストリングを受信する方法を示しています。

base64 キーとなる素材をエンコードするために使えるツールはたくさんある。 例えば、OpenSSL を使用して新規または既存の鍵素材を作成してエンコードする場合は、Hyper Protect Crypto Services または Key Protect の資料を参照してください。

Windows ユーザー

Powershell を使用して鍵素材を base64 エンコードすることができます。

鍵ストリングの入力

未加工の鍵ストリングをエンコードするには、まず、UTF-8 エンコードでストリングをバイトに変換します。 それから、そのバイトを base64 でエンコードされたストリングに変換します。

$KEY_VALUE = "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789"
$ENCODED_KEY = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($KEY_VALUE))

値が正しくエンコードされたことを確認するために、$ENCODED_KEY 変数をコンソールに表示します。

Write-Output $ENCODED_KEY

出力: YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OQ==

鍵ファイルの入力

ファイルの鍵文字列を base64 値にエンコードするには、まずファイルの内容を取得します。 次に、その内容を UTF-8 エンコードでバイトに変換します。 それから、鍵ストリングの入力と同じ方法で、バイトを base64 でエンコードされたストリングに変換することができます。

$KEY_FILE = "c:\path\to\file\key.txt"
$KEY_VALUE = get-content $KEY_FILE
$ENCODED_KEY = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($KEY_VALUE))

ここでもう一度、$ENCODED_KEY 値をロギングして確認します。

Write-Output $ENCODED_KEY

出力: YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OQ==

MacOS ユーザーと Linux ユーザー

bash シェルで使用できる base64 ユーティリティーを使用して、鍵素材を base64 でエンコードすることができます。

鍵ストリングの入力

未加工のストリングを base64 で base64 値にエンコードするには、ストリングをユーティリティーの入力としてパイプします。 printf を使用して、改行文字が追加されないようにします。

KEY_VALUE="abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789"
printf '%s' $KEY_VALUE | base64

出力: YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OQ==

鍵ファイルの入力

ファイルの鍵ストリングを base64 値にエンコードするには、まずファイル内容を取得し、改行があればすべて削除します。 それから、この値を base64 ユーティリティーにパイプします。 ここでもう一度、printf を使用して、改行文字が追加されないようにします。

KEY_FILE="path/to/file/key.txt"
KEY_VALUE=$(tr -d '\n' < $KEY_FILE)
printf '%s' $KEY_VALUE | base64

出力: YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OQ==