【发布时间】:2021-11-27 17:05:23
【问题描述】:
代码https://play.golang.org/p/CUEqjsJq5c
错误:
panic: crypto/rsa: message too long for RSA public key size
goroutine 1 [running]:
panic(0x4a6d80, 0xc420010420)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
main.main()
/tmp/sample.go:28 +0xfa
文件大小 811 字节(用于测试加密自源文件)。我想加密一些更大的文件,1..500 mb。我可以使用 RSA 还是需要使用其他方法?
【问题讨论】:
-
RSA 不适合加密大文件。去谷歌上查询。一般做法是生成一个小的 AES 密钥,您可以使用 RSA 密钥对 AES 密钥进行编码,然后使用 AES 密钥(对称加密)对大文件进行加密。
-
除了@icza 的评论,golang rsa 包对此有注释:golang.org/src/crypto/rsa/rsa.go#L335
-
但没有必要对对称密钥进行 RSA 加密,除非需要公钥/私钥对。公钥/私钥对的用例是什么
标签: encryption go rsa public-key-encryption encryption-asymmetric