【发布时间】:2017-08-09 06:58:08
【问题描述】:
我正在学习加密。我制作了一些键,编码了一个示例字符串(“1234 5678 9012 3456”),并且能够毫无问题地对其进行解码。第一部分工作正常。
然后我用我想要编码的真实数据样本进行了尝试,结果出现“数据对于密钥大小来说太大”错误。
字符串长度为 14041 个字符,最终产品可能更大,那么如何在没有 1024000 位密钥或类似疯狂的东西的情况下使其工作?
编辑:因为我已经从几个小时前打开它时学到了一些东西,所以我一直在使用的当前方法使用 RSA,因为这是 openssl_pkey_new 的默认设置。
基本上,我有一个移动应用程序,我希望能够以最安全的方式更新应用程序内的数据。我的老板对“云”有点偏执。我的想法是使用 RSA 或其他东西通过 web API 页面验证应用程序,从已编码的数据库中获取最新数据,并在应用程序中对其进行解码以进行存储,以避免不得不推出每次更新应用数据时(一年几次)都会更新一个新版本。
我的老板真的不喜欢它泄露数据的想法,所以我可以做任何事情来锁定它。
【问题讨论】:
-
您使用什么密钥和密码?它几乎听起来像 RSA,但也可能是其他的。
-
@jww 这和我想的一样多:
$keysize = 4096; $res=openssl_pkey_new(array('private_key_bits' => $keysize)); -
@CD001 这确实像我需要的,但我不确定我是否理解它:) 如果我没看错,我想生成一个 RSA 密钥,用我的openssl 私钥,用 RSA 密钥对文件进行编码,然后将 RSA 编码的文件和编码的密钥发送到目的地,密钥将被解码,然后文件将用该密钥解码?虽然在这种情况下它不会是一个文件,而是一个任意长的字符串。
-
嗯,我只需要明智地点点头并说“可能” :) 我通常使用 GnuPG 进行加密,这是一种稍微不同的方法,因为您首先需要接收者的公钥......我可以'不记得我上次使用什么东西来直接与 OpenSSL 交互,而不是在 Apache 上生成自签名证书,所以我有点(非常)生疏……但这听起来是对的。
标签: php encryption php-openssl