Go を使用して ECB モードで AES データを復号化する
Go で AES-ECB を使用してデータを復号化することに関するクエリに応答して、次の解決策を示します。
電子コードブック (ECB) モードは、データを指定されたサイズのブロックに分割する基本的な加密方法です (たとえば、AES-128 は 16 バイトのブロックを使用します)。次に、各ブロックが AES アルゴリズムを使用して個別に暗号化され、暗号化されたブロックが生成されます。
AES-128 ECB を使用して暗号化されたデータを復号するには、次の手順に従います。
必要なモジュールをインポートします:
<code class="go">import ( "crypto/aes" )</code>
新しい暗号を作成します:
<code class="go">cipher, _ := aes.NewCipher([]byte(key))</code>
キーを暗号化キーに置き換えますデータの暗号化に使用されます。
復号化されたデータを保存する空のバッファを作成します:
<code class="go">decrypted := make([]byte, len(data))</code>
データは暗号化されたデータを表します。
ブロック サイズを定義します:
<code class="go">size := 16 // block size for AES-128</code>
各ブロックを復号化します:
<code class="go">for bs, be := 0, size; bs < len(data); bs, be = bs+size, be+size { cipher.Decrypt(decrypted[bs:be], data[bs:be]) }</code>
このループは各ブロックを復号化し、結果を復号化されたバッファに保存します。
復号化されたデータを返します:
<code class="go">return decrypted</code>
同一のブロックは常に同じ暗号化ブロックになるため、ECB モードには既知のセキュリティ脆弱性があることに注意してください。 AES による暗号化をより安全にするには、CBC や GCM などの他の操作モードを検討してください。
以上がGo を使用して ECB モードで AES データを復号化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。