我正在处理非常大的数字。我的一种算法要求数字“x”小于另一个数字“n”,以便执行该算法。我想知道是否可以加密非常大的数字以产生较小的数字并存储密钥,以便我需要将数字解密回更大的数字?我看过mcrypt,但它并没有输出所有数字,从我所看到的它输出一个字符串。
问问题
277 次
2 回答
1
您在谈论的是所谓的“压缩”,而不是“加密”。
如果有的话,加密可能会产生比其输入更大的字符串。虽然您可以压缩数字,但这将是非常小的节省。
根据可能值的范围,您可以简单地构建一个包含每个可能的大数的数组,并使用数组索引而不是数字本身。
于 2012-11-16T19:11:24.203 回答
0
您可以将数字转换为更高的基数以用更少的字符表示它。例如,如果您的数字以 10 为底,则将其转换为以 16 为底。您可以使用 GMP 库对这些不在以 10 为底的数字进行高精度数学运算。
您可以在此处阅读有关 GMP(Gnu 多精度)库的信息:http ://www.php.net/manual/en/book.gmp.php
于 2012-11-16T19:18:56.073 回答