ファイルやテキストの復号化
今回は暗号化されたテキストデータを復号化(解読)する方法を解説します。
📄️ ファイルやテキストの暗号化
オンプレミスソフトに限らず、クラウドサービスなどとも連携することが想定されています。セキュリティや暗号化に関するアクションもいくつか用意されています。テキストファイルを暗号化する方法を解説します。
📄️ ハッシュ値の算出
テキストやファイルデータをハッシュ化し、ハッシュ値を算出する方法を解説します。
暗号化技術と注意点
今回使用するのは、AES という暗号化技術です。
現在でも多くの環境で利用されている技術で、身近なものでいえば Wifi ルーターと端末との接続にも使用されています。
ブルートフォース(総当たり)での解析は難しく、鍵長を 256 ビットに設定した場合、解析には数百兆年かかるといわれています。
共通鍵暗号方式に分類され、復号化と復号化に同じパスワードを必要とします。
そのためパスワードを紛失してしまうと、データを元の状態に復号することができなくなります。
Power Automate Desktop を使用して AES で復号化した場合は、復号のために必ずパスワードは控えておくようにしましょう。
また、今回解読方法について解説しますが、前述した通り総当たりでの解析は非常に難しいです。
パスワードを忘れてしまった場合でも、暗号化アルゴリズムを把握しており、パスワードの桁数が少なければ解読できるかもしれませんが、あまり現実的ではありません。
解説はあくまで、Power Automate Desktop を使用して暗号化されたデータを、同一のパスワードを使って復号化するケースに限るということをご了承ください。
パスワードの設定方法
前述した通り、AES を使って暗号化・復号化するためにはパスワードが必要になります。
パスワードの指定は、直接入力や変数を用いた入力など柔軟に設定できますが、おすすめは機密情報としてマークした入力変数です。
この方法であれば、フロー設定時や実行時でも、パスワードを安全に保つことができます。
特定のテキストデータを復号化する場合
すでに暗号化されている特定の文字列情報を復号化する場合、「AES でテキストを解読する」というアクションを使用します。
「AES でテキストを復号化する」アクションの詳細
アクションは以下のパラメーターを持ちます。
パラメーター名 | 値 |
---|---|
エンコード | 作成される文字列の文字コード |
復号化するテキスト | 復号化する対象テキスト |
復号化キー | 復号化に使用するパスワード |
サンプルフローをコピーアンドペーストで実装する
サンプルとして、テキストデータを一度暗号化し、同一の鍵を使って復号化するフローを用意しました。
以下のコードをコピーし、Power Automate Desktop の編集画面に貼り付けることで、対象のアクションが追加されます。
パスワードは前述した方法で、「password」という名前の入力変数が存在することを前提としています。
SET TargetString TO $'''%'暗号化する対象テキスト'%'''
Cryptography.EncryptText.EncryptTextWithAES Encoding: Cryptography.EncryptionEncoding.UTF8 TextToEncrypt: TargetString EncryptionKey: password PaddingMode: Cryptography.PaddingMode.PKCS7 KeySize: Cryptography.AESKeySize.Bits256 EncryptedText=> EncryptedText
Cryptography.DecryptText.DecryptTextWithAES Encoding: Cryptography.EncryptionEncoding.UTF8 TextToDecrypt: EncryptedText DecryptionKey: password Padding: Cryptography.PaddingMode.PKCS7 KeySize: Cryptography.AESKeySize.Bits256 DecryptedText=> DecryptedText
実行すると、対象となったデータが暗号化され、復号結果と対象データが一致していることを確認できます。
Power Automate Desktop を操作して実装
「アクションの検索」から、「AES でテキストを復号化する」と入力します。
パラメーターを以下のように設定します
パラメーター名 値 エンコード UTF-8 復号化するテキスト %"復号化の対象となるテキストデータ"% 復号化キー 復号化に使用するパスワード 実行することで、指定した文字列が AES を用いて復号化されます。
起こりうる例外
復号化の設定が適切でない場合や、対応していない文字列が含まれている場合、復号化中にエラーが発生する可能性があります。
ブロック処理を実装しておくことをおすすめします。