使用 RSA 在 Go 中进行密钥交换的 AES 加密通信

我正在尝试在基于 Ruby Sinatra 的网络后端和 Google Go 应用程序之间建立安全通信。Go 应用程序包含公钥并最初打开连接。然后它用它的公钥加密随机生成的 AES 并将其发送到网络后端。所有即将到来的(大尺寸)数据都将使用 AES 密钥进行加密。这通常是一种可用的方法吗?


Go 代码看起来像这样


aesRand := make([]byte, 32)

rand.Read(aesRand)

AESBlock, _ = aes.NewCipher(aesRand)


// Encrypt AES key with RSA

data, err := rsa.EncryptPKCS1v15(rand.Reader, PubKey, aesRand)

现在的问题是,加密并通过线路发送随机字节是否正确,还是应该加密并发送 AESBlock?


RISEBY
浏览 208回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go