我正在尝试在基于 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?
相关分类