"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 > Método de implementación Estándar de firma de cifrado simétrico en Golang

Método de implementación Estándar de firma de cifrado simétrico en Golang

Publicado el 2024-07-31
Navegar:695

Image description

¿Qué es el método de firma de cifrado simétrico estándar?

Entonces, verá, este método es una forma de cifrar datos para que sean seguros y no puedan ser leídos por personas que no tienen la clave de descifrado. Imagínense, amigos, que tienen un diario que cierran con un candado. Solo las personas que tengan la clave podrán abrir y leer tus diarios.

Cifrado simétrico

El cifrado simétrico es como amigos y amigos, qué es esto, jajaja, el punto es que es como tener la misma llave para abrir la cerradura. Esta clave se utiliza para cifrar (bloquear) y descifrar (desbloquear) datos. Por lo tanto, tanto amigos como amigos pueden bloquear y desbloquear los mismos datos siempre que tengas la clave.

Firma

La firma aquí no es una firma física, sino una firma digital. Esta firma garantiza que los datos enviados sean realmente de amigos y que nadie haya cambiado los datos a mitad de camino. Entonces, amigos, pueden estar seguros de que los datos que reciben son genuinos de la fuente y no han sido manipulados.

¿Por qué deberías utilizar este método?

  • Seguridad de datos: Seguramente quieres que tus datos estén a salvo de manos maliciosas, ¿verdad? Con el cifrado simétrico, sus datos están cifrados y solo pueden ser abiertos por la persona que tiene la clave.
  • Integridad de los datos: con una firma, puede asegurarse de que los datos que recibe o envía son genuinos y no han sido manipulados. Entonces, amigos, no deben preocuparse de que alguien les haga trampa.
  • Eficiencia: el cifrado simétrico suele ser más rápido que el cifrado asimétrico porque el proceso de cifrado y descifrado es más sencillo.

Ejemplo de uso en Golang

Ahora veamos cómo usar este método en Golang.

Cifrado simétrico en Golang

package main

import (
    "crypto/aes"
    "crypto/cipher"
    "crypto/rand"
    "encoding/hex"
    "fmt"
    "io"
)

func encrypt(key, text []byte) (string, error) {
    block, err := aes.NewCipher(key)
    if err != nil {
        return "", err
    }

    ciphertext := make([]byte, aes.BlockSize len(text))
    iv := ciphertext[:aes.BlockSize]
    if _, err := io.ReadFull(rand.Reader, iv); err != nil {
        return "", err
    }

    stream := cipher.NewCFBEncrypter(block, iv)
    stream.XORKeyStream(ciphertext[aes.BlockSize:], text)

    return fmt.Sprintf("%x", ciphertext), nil
}

func decrypt(key []byte, cryptoText string) (string, error) {
    ciphertext, _ := hex.DecodeString(cryptoText)

    block, err := aes.NewCipher(key)
    if err != nil {
        return "", err
    }

    if len(ciphertext) 



Firma Golang

package main

import (
    "crypto/hmac"
    "crypto/sha256"
    "encoding/hex"
    "fmt"
)

func createHMAC(key, message []byte) string {
    mac := hmac.New(sha256.New, key)
    mac.Write(message)
    return hex.EncodeToString(mac.Sum(nil))
}

func verifyHMAC(key, message []byte, signature string) bool {
    expectedMAC := createHMAC(key, message)
    return hmac.Equal([]byte(expectedMAC), []byte(signature))
}

func main() {
    key := []byte("my-secret-key")
    message := []byte("important message")

    signature := createHMAC(key, message)
    fmt.Printf("Signature: %s\n", signature)

    isValid := verifyHMAC(key, message, signature)
    fmt.Printf("Is valid: %t\n", isValid)
}

Por lo tanto, el método de firma de cifrado simétrico estándar es importante para mantener la seguridad y la integridad de sus datos. Con el cifrado simétrico, puede cifrar sus datos para hacerlos seguros y, con una firma, puede asegurarse de que los datos que recibe o envía son genuinos y no han sido manipulados. Por lo tanto, asegúrese de que sus amigos utilicen este método para todo tipo de necesidades que requieran alta seguridad.

Fuente:

  • HMAC Ir
  • SHA256
Declaración de liberación Este artículo se reproduce en: https://dev.to/yogameleniawan/implementasi-metode-standard-metric-encryption-signature-pada-golang-2m5m?1 Si hay alguna infracción, comuníquese con [email protected] para eliminar él
Ú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