Итак, вы видите, этот метод представляет собой способ зашифровать данные, чтобы они были безопасными и не могли быть прочитаны людьми, у которых нет ключа расшифровки. Представьте себе, друзья, у вас есть ежедневник, который вы запираете на висячий замок. Только люди, у которых есть ключ, смогут открывать и читать ваши дневники.
Симметричное шифрование - это как друзья и друзья, что это, ха-ха-ха, дело в том, что это как иметь один и тот же ключ для открытия замка. Этот ключ используется для шифрования (блокировки) и дешифрования (разблокировки) данных. Таким образом, как друзья, так и друзья могут блокировать и разблокировать одни и те же данные, пока у вас есть ключ.
Здесь подпись является не физической, а цифровой подписью. Эта подпись гарантирует, что отправленные данные действительно получены от друзей и никто не изменил данные на полпути. Итак, друзья, вы можете быть уверены, что получаемые вами данные подлинны от источника и не были подделаны.
Теперь давайте посмотрим, как использовать этот метод в 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) }Таким образом, стандартный метод подписи с симметричным шифрованием важен для обеспечения безопасности и целостности ваших данных. С помощью симметричного шифрования вы можете зашифровать свои данные, чтобы сделать их безопасными, а с помощью подписи вы можете гарантировать, что данные, которые вы получаете или отправляете, являются подлинными и не были подделаны. Поэтому убедитесь, что друзья используют этот метод для всех видов нужд, требующих высокого уровня безопасности.
Источник:
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3