Go での AES ECB 暗号化
Go では、crypto/aes パッケージを使用して ECB モードでの AES 暗号化を実現できます。 ECB モードは、平文の各ブロックが個別に暗号化される単純な暗号化モードであり、平文ブロックが繰り返されて同一の暗号化ブロックが生成されます。
ECB 暗号化の解読
提供されている Goコードは、AES ECB 暗号化データを復号化しようとします。ただし、いくつかの問題があります。
Go での正しい ECB 復号化
次の Go コードは、修正された ECB 復号化関数を提供します。
<code class="go">import ( "crypto/aes" "fmt" ) func DecryptAes128Ecb(data, key []byte) []byte { cipher, _ := aes.NewCipher(key) decrypted := make([]byte, len(data)) size := cipher.BlockSize() 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 モードでは平文データのパターンが明らかになるため、攻撃を受けやすくなります。 CBC や OFB などの代替モードはより安全であるため、代わりに検討する必要があります。
以上がGo で AES ECB 暗号化を正しく復号化する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。