所以,你看,这种方法是一种加密数据的方法,这样数据就安全了,没有解密密钥的人就无法读取数据。想象一下,朋友们,你有一本用挂锁锁着的日记。只有拥有钥匙的人才能打开并阅读你的日记。
对称加密就像朋友和朋友,这是什么,哈哈哈,重点是,就像拥有同一把钥匙开锁一样。该密钥用于加密(锁定)和解密(解锁)数据。所以,只要你有钥匙,好友和好友都可以锁定和解锁相同的数据。
这里的签名不是物理签名,而是数字签名。这个签名保证了发送的数据是真正来自朋友的,并且没有人中途更改过数据。所以朋友们,您可以确定您收到的数据是来自源头的真实数据,没有被篡改过。
现在让我们看看如何在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)签名 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) }因此,标准对称加密签名方法对于维护数据的安全性和完整性非常重要。通过对称加密,您可以对数据进行加密以使其安全,而通过签名,您可以确保您接收或发送的数据是真实的且未被篡改。所以,请确保朋友们在各种需要高安全性的需求时使用此方法。
来源:
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3