«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Реализация метода стандартной симметричной подписи шифрования на Golang

Реализация метода стандартной симметричной подписи шифрования на Golang

Опубликовано 31 июля 2024 г.
Просматривать:519

Image description

Что такое стандартный метод подписи симметричного шифрования?

Итак, вы видите, этот метод представляет собой способ зашифровать данные, чтобы они были безопасными и не могли быть прочитаны людьми, у которых нет ключа расшифровки. Представьте себе, друзья, у вас есть ежедневник, который вы запираете на висячий замок. Только люди, у которых есть ключ, смогут открывать и читать ваши дневники.

Симметричное шифрование

Симметричное шифрование - это как друзья и друзья, что это, ха-ха-ха, дело в том, что это как иметь один и тот же ключ для открытия замка. Этот ключ используется для шифрования (блокировки) и дешифрования (разблокировки) данных. Таким образом, как друзья, так и друзья могут блокировать и разблокировать одни и те же данные, пока у вас есть ключ.

Подпись

Здесь подпись является не физической, а цифровой подписью. Эта подпись гарантирует, что отправленные данные действительно получены от друзей и никто не изменил данные на полпути. Итак, друзья, вы можете быть уверены, что получаемые вами данные подлинны от источника и не были подделаны.

Почему вам следует использовать этот метод?

  • Безопасность данных: вы ведь хотите, чтобы ваши данные были в безопасности от злоумышленников, верно? При симметричном шифровании ваши данные зашифрованы и могут быть открыты только тем, у кого есть ключ.
  • Целостность данных: с помощью подписи вы можете гарантировать, что данные, которые вы получаете или отправляете, являются подлинными и не были подделаны. Так что, друзья, вам не нужно беспокоиться о том, что кто-то обманет.
  • Эффективность: симметричное шифрование обычно быстрее, чем асимметричное, поскольку процесс шифрования и дешифрования проще.

Пример использования в Голанге

Теперь давайте посмотрим, как использовать этот метод в Golang.

Симметричное шифрование в 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) 



Подпись Голанга

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)
}

Таким образом, стандартный метод подписи с симметричным шифрованием важен для обеспечения безопасности и целостности ваших данных. С помощью симметричного шифрования вы можете зашифровать свои данные, чтобы сделать их безопасными, а с помощью подписи вы можете гарантировать, что данные, которые вы получаете или отправляете, являются подлинными и не были подделаны. Поэтому убедитесь, что друзья используют этот метод для всех видов нужд, требующих высокого уровня безопасности.

Источник:

  • HMAC Перейти
  • SHA256
Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/yogameleniawan/implementasi-metode-standard-symmetric-encryption-signature-pada-golang-2m5m?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить это
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3