"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué mi función de cifrado AES ECB en Go no devuelve ningún dato?

¿Por qué mi función de cifrado AES ECB en Go no devuelve ningún dato?

Publicado el 2025-01-17
Navegar:191

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

Cifrado AES ECB en Go: solución de problemas e implementación

Su intento inicial de implementar el cifrado AES ECB en Go encontró algunos obstáculos. Aquí hay una explicación completa y una solución de código revisada:

Relleno PKCS5

El relleno PKCS5 es crucial para el cifrado AES en modo ECB. Garantiza que el texto sin formato tenga una longitud que sea múltiplo del tamaño del bloque. Su algoritmo PKCS5Pad existente parece estar funcionando correctamente.

Modo de cifrado

El paquete Go AES no proporciona explícitamente un modo "ECB" configuración. Sin embargo, puedes emularlo descifrando los datos en bloques de tamaño fijo:

Función cifrada revisada

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
}

Este código divide el texto cifrado en bloques, descifra cada bloque y agrega los bloques descifrados al búfer de texto sin formato.

Problema de implementación

El La función AESECB revisada no parece devolver ningún dato. Asegúrese de llamarlo correctamente y pasar el texto cifrado cifrado como argumento.

Nota de seguridad importante

Es digno de mención que el modo ECB no es criptográficamente seguro. Los bloques repetidos de texto plano siempre producen bloques cifrados idénticos, lo que los hace vulnerables a ciertos ataques. Se recomienda encarecidamente utilizar modos de operación más seguros, como CBC, CTR o GCM, para un cifrado sólido.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3