我需要多大的钥匙?

How big of a key do I need?

我正在学习加密。我制作了一些密钥,编码了一个示例字符串(“1234 5678 9012 3456”)并且能够毫无问题地对其进行解码。第一部分工作正常。

然后我用我想要编码的真实数据样本进行了尝试,得到了一个 "data to large for key size" 错误。

字符串长度为 14041 个字符,最终产品可能更大,那么在没有 1024000 位密钥或类似疯狂的东西的情况下如何让它工作?

编辑:因为我已经从几个小时前打开它时学到了一些东西,所以我一直在使用的当前方法使用 RSA,因为这是 openssl_pkey_new 的默认设置。

基本上,我有一个移动应用,我希望能够以最安全的方式更新应用内数据。我的老板对 "the cloud" 有点偏执。我的想法是使用 RSA 或其他东西通过 Web API 页面验证应用程序,从已编码的数据库中获取最新数据,并在应用程序中对其进行解码以进行存储以避免每次更新应用程序数据时都必须推出新版本(一年几次)。
我的老板真的不喜欢它泄露数据的想法,所以我可以做任何事情来锁定它。

除非需要 public/private 密钥对,否则不需要 RSA(非对称)加密。非对称数据大小被限制在小于密钥长度并且非常慢。

数据一般采用AES等对称加密算法

使用 RSA 加密的长度为 14041 字节的字符串需要超过 112K 位的密钥大小 (unrealistic/impossible),AES 密钥通常为 128 或 256 位。

如果需要 RSA,策略是使用混合加密,其中使用 AES 和生成的随机密钥对数据进行加密,然后使用 RSA 对密钥进行加密。