Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah Fungsi Penyulitan ECB AES saya dalam Pergi Tidak Mengembalikan Sebarang Data?

Mengapakah Fungsi Penyulitan ECB AES saya dalam Pergi Tidak Mengembalikan Sebarang Data?

Linda Hamilton
Linda Hamiltonasal
2024-10-31 23:31:29793semak imbas

Why is my AES ECB Encryption Function in Go Not Returning Any Data?

Penyulitan ECB AES dalam Go: Penyelesaian Masalah dan Pelaksanaan

Percubaan awal anda untuk melaksanakan penyulitan AES ECB dalam Go menghadapi beberapa sekatan jalan. Berikut ialah penjelasan komprehensif dan penyelesaian kod yang disemak semula:

Padding PKCS5

Padding PKCS5 adalah penting untuk penyulitan AES dalam mod ECB. Ia memastikan bahawa teks biasa mempunyai panjang yang merupakan gandaan saiz blok. Algoritma PKCS5Pad anda yang sedia ada nampaknya berfungsi dengan betul.

Mod Penyulitan

Pakej Go AES tidak menyediakan mod "ECB" secara eksplisit tetapan. Walau bagaimanapun, anda boleh mencontohinya dengan menyahsulit data dalam blok bersaiz tetap:

Fungsi Disulitkan Disemak

func AESECB(ciphertext []byte) []byte {
    cipher, _ := aes.NewCipher([]byte(KEY))
    bs := aes.BlockSize
    if len(ciphertext)%bs != 0 {
        panic("Need a multiple of the block size")
    }
    plaintext := make([]byte, len(ciphertext))
    for len(plaintext) > 0 {
        cipher.Decrypt(plaintext, ciphertext)
        plaintext = plaintext[bs:]
        ciphertext = ciphertext[bs:]
    }
    return plaintext
}

Kod ini membahagikan teks sifir kepada blok, menyahsulit setiap blok dan tambahkan blok yang dinyahsulit pada penimbal plaintext.

Isu Pelaksanaan

Fungsi AESECB yang disemak nampaknya tidak mengembalikan sebarang data. Pastikan anda memanggilnya dengan betul dan menghantar teks sifir yang disulitkan sebagai hujah.

Nota Keselamatan Penting

Perlu diperhatikan bahawa mod ECB tidak selamat dari segi kriptografi. Blok teks biasa berulang sentiasa menghasilkan blok disulitkan yang sama, menjadikannya terdedah kepada serangan tertentu. Anda amat disyorkan untuk menggunakan mod operasi yang lebih selamat, seperti CBC, CTR atau GCM, untuk penyulitan yang teguh.

Atas ialah kandungan terperinci Mengapakah Fungsi Penyulitan ECB AES saya dalam Pergi Tidak Mengembalikan Sebarang Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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