Go中的正确非对称文件加密

时间:2016-11-01 01:49:21

标签: encryption go public-key-encryption

我需要一种方法来允许多人加密各种文件,但只有一方能够全部读取它们。我通过以下各种在线示例在Go中编写了一个程序,但在某些时候我收到了以下错误:

Error from encryption: crypto/rsa: message too long for RSA public key size

RSA是错误的方式吗?如果我将文件分成多个块并对其进行加密,这样可以吗?是否有一个我可以轻松使用的非对称分组密码?

我阅读了讨论here,据说RSA不是正确的方法。

你能提供一个例子吗?

2 个答案:

答案 0 :(得分:0)

如果您需要使用公钥非对称加密来处理大于密钥大小的数据,则需要使用混合加密。基本上这就是HTTPS的工作方式。

Hybrid encryption是使用对称密钥加密(如AES)加密数据的地方,该密钥使用非对称密钥加密(如RSA或EC(Elliptic Curve)加密加密。

不要将文件分成多个块并对其进行加密。

答案 1 :(得分:0)

所以我最终使用GPG,我的服务有一个唯一的私钥,我与我的用户共享公共密钥。