Go を使用した ECB モードでの AES の復号化
質問:
問題が発生していますGo で AES ECB モード暗号化を実装している間。具体的には、crypto/aes パッケージで暗号化モードを切り替える方法が不明で、コードが現在正しい結果を提供していません。
答え:
ECB モードについて:
電子コードブック (ECB) は、AES アルゴリズムを使用して各データ ブロックが個別に暗号化される単純な暗号化モードです。データは固定サイズのブロック (AES の場合は通常 16 バイト) に分割され、各ブロックは同じ暗号化キーで暗号化されます。
Go での ECB モード復号化の実装:
Go の crypto/aes パッケージを使用して ECB モードで AES データを復号化するには、次のコードを使用できます:
<code class="go">package main import ( "crypto/aes" ) func DecryptAes128Ecb(data, key []byte) []byte { cipher, _ := aes.NewCipher([]byte(key)) decrypted := make([]byte, len(data)) // Define the block size size := 16 // Iterate over the data and decrypt each block for bs, be := 0, size; bs < len(data); bs, be = bs+size, be+size { cipher.Decrypt(decrypted[bs:be], data[bs:be]) } return decrypted }</code>
ECB モードのセキュリティに関する注意:
ECB モードは実装が簡単ですが、一般に安全ではないと考えられていることに注意することが重要です。これは、平文ブロックを繰り返すと常に同じ暗号文ブロックに暗号化され、データ内のパターンが簡単に検出できるようになるためです。このため、通常、ECB モードは実用的には推奨されません。
以上がGo で ECB モードで AES を復号化する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。