Bagaimana untuk Menyahsulit Penyulitan AES ECB dengan betul dalam Go?

DDD
Lepaskan: 2024-11-01 07:34:30
asal
796 orang telah melayarinya

How to Correctly Decrypt AES ECB Encryption in Go?

Penyulitan ECB AES dalam Go

Dalam Go, penyulitan AES dalam mod ECB boleh dicapai menggunakan pakej crypto/aes. Mod ECB ialah mod penyulitan mudah di mana setiap blok plaintext disulitkan secara berasingan, menyebabkan blok plaintext berulang menghasilkan blok disulitkan yang sama.

Mentafsir Penyulitan ECB

Go yang disediakan kod cuba menyahsulit data disulitkan AES ECB. Walau bagaimanapun, terdapat beberapa isu:

  • Dalam fungsi Nyahsulit, PKCS5Pad hendaklah digunakan sebelum menyahsulit data.
  • Fungsi AESECB mentafsir proses penyahsulitan ECB dengan betul tetapi mengandungi ralat dalam menyatakan saiz blok.

Penyahsulitan ECB yang betul dalam Go

Kod Go berikut menyediakan fungsi penyahsulitan ECB yang diperbetulkan:

<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>
Salin selepas log masuk

Pertimbangan Keselamatan

Adalah penting untuk ambil perhatian bahawa ECB mod tidak selamat dan tidak boleh digunakan dalam aplikasi kriptografi moden. Mod ECB mendedahkan corak dalam data teks biasa, menjadikannya mudah diserang. Mod alternatif seperti CBC atau OFB adalah lebih selamat dan harus dipertimbangkan sebaliknya.

Atas ialah kandungan terperinci Bagaimana untuk Menyahsulit Penyulitan AES ECB dengan betul dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan