Bagaimana untuk Menyahsulit AES dalam Mod ECB dengan Go?

DDD
Lepaskan: 2024-11-01 09:41:30
asal
174 orang telah melayarinya

How to Decrypt AES in ECB Mode with Go?

Menyahsulit AES dalam Mod ECB dengan Go

Soalan:

Anda menghadapi masalah semasa melaksanakan penyulitan mod AES ECB dalam Go. Secara khususnya, anda tidak pasti cara menukar mod penyulitan dalam pakej crypto/aes dan kod anda pada masa ini tidak memberikan hasil yang betul.

Jawapan:

Memahami Mod ECB:

Buku Kod Elektronik (ECB) ialah mod penyulitan mudah di mana setiap blok data disulitkan secara bebas menggunakan algoritma AES. Data dibahagikan kepada blok bersaiz tetap (biasanya 16 bait untuk AES) dan setiap blok disulitkan dengan kunci penyulitan yang sama.

Melaksanakan Penyahsulitan Mod ECB dalam Go:

Untuk menyahsulit data AES dalam mod ECB menggunakan pakej crypto/aes Go, anda boleh menggunakan kod berikut:

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

Nota tentang Keselamatan Mod ECB:

Walaupun mod ECB adalah mudah untuk dilaksanakan, adalah penting untuk ambil perhatian bahawa ia secara amnya dianggap tidak selamat. Ini kerana blok teks biasa yang berulang akan sentiasa menyulitkan kepada blok teks sifir yang sama, menjadikan corak dalam data mudah dikesan. Atas sebab ini, mod ECB biasanya tidak disyorkan untuk kegunaan praktikal.

Atas ialah kandungan terperinci Bagaimana untuk Menyahsulit AES dalam Mod ECB dengan 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!