超过PHP二进制限制

时间:2017-08-24 10:05:20

标签: php string binary limit

我试图在PHP中进行某种XOR二进制加密算法,因此我需要将大字符串转换为二进制。问题是PHP在二进制计算/存储方面似乎非常有限,因为只有六个字母的字符串,一旦转换,就超过了PHP INT限制。

这意味着将大字符串解压缩为二进制只会产生无法使用的数字。我尝试通过将字符串拆分成4个字母的包然后解压缩来进行字符串解包,但是我在重新包装时遇到了麻烦,它给出了随机字符而不是原始字符。

如何解压非常长的字符串,然后将它们存储在字符串(仅由0和1组成)或大数组中(其中每个值为0或1,键指示这个位的位置)?

1 个答案:

答案 0 :(得分:1)

你试过GMP库吗?手册页this

快速测试代码:

<?php
$gmpValue1 = gmp_init("1562767628166296698262", 10); // note: using base 10 (decimal)
$gmpValue2 = gmp_init("2163623626362663286446", 10);

$gmpValue3 = gmp_xor($gmpValue1, $gmpValue2);

echo gmp_strval($gmpValue3, 10) . "\n"; // note: using base 10 (decimal)