我需要多大的钥匙?

时间:2017-03-17 16:07:15

标签: php encryption php-openssl

我正在学习加密。我做了一些键,编码了一个样本字符串(“1234 5678 9012 3456”)并且能够解码它没问题。第一部分工作正常。

然后我尝试了一些我要编码的实际数据样本,并得到了“数据大于密钥大小”的错误。

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

编辑:因为我已经从几小时前开始学习了一些东西,我一直在玩的当前方法使用RSA,因为这是openssl_pkey_new的默认值。

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

1 个答案:

答案 0 :(得分:1)

除非需要公钥/私钥对,否则不需要RSA(非对称)加密。非对称数据大小限制为小于密钥长度,而且非常慢。

通常,AES等对称加密算法用于数据。

使用RSA加密的长度为14041字节的字符串要求密钥大小超过112K位(不切实际/不可能),AES密钥通常为128或256位。

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