メインコンテンツまでスキップ

ファイルやテキストの暗号化

今回はファイルやテキストデータを暗号化する方法を解説します。

暗号化技術と注意点

今回使用するのは、AES という暗号化技術です。

現在でも多くの環境で利用されている技術で、身近なものでいえば Wifi ルーターと端末との接続にも使用されています。

ブルートフォース(総当たり)での解析は難しく、鍵長を 256 ビットに設定した場合、解析には数百兆年かかるといわれています。

共通鍵暗号方式に分類され、暗号化と復号化に同じパスワードを必要とします。

そのためパスワードを紛失してしまうと、データを元の状態に復号することができなくなります。

Power Automate Desktop を使用して AES で暗号化した場合は、復号のために必ずパスワードは控えておくようにしましょう。

特定のテキストデータを暗号化する場合

オンプレミスソフトやウェブ上から取得した特定の文字列情報を暗号化する場合、「AES でテキストを暗号化する」というアクションを使用します。

「AES でテキストを暗号化する」アクションの詳細

アクションは以下のパラメーターを持ちます。

パラメーター名
エンコード作成される文字列の文字コード
暗号化するテキスト暗号化する対象テキスト
暗号化キー暗号化に使用するパスワード

action

サンプルフローをコピーアンドペーストで実装する

サンプルとして、テキストデータを暗号化し、結果をファイルに保存するフローを用意しました。

以下のコードをコピーし、Power Automate Desktop の編集画面に貼り付けることで、対象のアクションが追加されます。

マシン間で暗号化のパスワード情報が引き継がれないため、追加されたアクションの暗号化部分だけ、任意のパスワードに変更してください。

SET TargetString TO $'''%'暗号化する対象テキスト'%'''
Cryptography.EncryptText.EncryptTextWithAES Encoding: Cryptography.EncryptionEncoding.UTF8 TextToEncrypt: TargetString EncryptionKey: `` PaddingMode: Cryptography.PaddingMode.PKCS7 KeySize: Cryptography.AESKeySize.Bits256 EncryptedText=> EncryptedText
File.WriteText File: $'''C:\\Users\\Public\\Documents\\encrypted.txt''' TextToWrite: EncryptedText AppendNewLine: True IfFileExists: File.IfFileExists.Overwrite Encoding: File.FileEncoding.UTF8

実行すると、パブリックのドキュメントに暗号化されたテキストファイルが保存されます。

Power Automate Desktop を操作して実装

  1. 「アクションの検索」から、「AES でテキストを暗号化する」と入力します。

  2. パラメーターを以下のように設定します

    パラメーター名
    エンコードUTF-8
    暗号化するテキスト%"暗号化の対象となるテキストデータ"%
    暗号化キー暗号化に使用するパスワード
  3. 実行することで、指定した文字列が AES を用いて暗号化されます。

起こりうる例外

暗号化の設定が適切でない場合や、対応していない文字列が含まれている場合、暗号化中にエラーが発生する可能性があります。

ブロック処理を実装しておくことをおすすめします。

特定のファイルデータを暗号化する場合

特定のファイルから情報を取得し暗号化する場合は、「AES でファイルから暗号化」というアクションを使用します。

「AES でファイルから暗号化」アクションの詳細

アクションは以下のパラメーターを持ちます。

パラメーター名
エンコード作成される文字列の文字コード
暗号化するファイル暗号化する対象ファイル
暗号化キー暗号化に使用するパスワード

action

説明文に

AES でファイルの内容を暗号化します。

とあるため誤解しやすいですが、このアクションによって、参照するファイルが上書きされることはありません。

暗号化後の結果は変数として格納されます。

サンプルフローをコピーアンドペーストで実装する

サンプルとして、パブリックのドキュメントに保存されているテキストファイルを暗号化し、作成された文字列を別のテキストファイルとして作成するフローを用意しました。

以下のコードをコピーし、Power Automate Desktop の編集画面に貼り付けることで、対象のアクションが追加されます。

マシン間で暗号化のパスワード情報が引き継がれないため、追加されたアクションの暗号化部分だけ、任意のパスワードに変更してください。

Cryptography.EncryptFromFile.EncryptFromFileWithAES Encoding: Cryptography.EncryptionEncoding.Unicode FileToEncrypt: $'''C:\\Users\\Public\\Documents\\document.txt''' EncryptionKey: `` PaddingMode: Cryptography.PaddingMode.PKCS7 KeySize: Cryptography.AESKeySize.Bits256 EncryptedText=> EncryptedText
File.WriteText File: $'''C:\\Users\\Public\\Documents\\encrypted.txt''' TextToWrite: EncryptedText AppendNewLine: True IfFileExists: File.IfFileExists.Overwrite Encoding: File.FileEncoding.UTF8

Power Automate Desktop を操作して実装

  1. 「アクションの検索」から、「AES でファイルから暗号化」と入力します。

  2. パラメーターを以下のように設定します

    パラメーター名
    エンコードUTF-8
    暗号化するテキストC:\Users\Public\Documents\document.txt
    暗号化キー暗号化に使用するパスワード
  3. 実行することで、指定したファイルのテキストデータが暗号化され、結果が変数として格納されます。

起こりうる例外

暗号化中にエラーが発生する可能性があります。

ブロック処理を実装しておくことをおすすめします。