超过 PHP 二进制限制
Exceed PHP binary limit
我试图在 PHP 中进行某种 XOR 二进制加密算法,因此我需要将大字符串转换为二进制。问题是 PHP 在二进制计算/存储方面似乎非常有限,因为只有六个字母的字符串,一旦转换,就超过了 PHP INT 限制。
这意味着将一个大字符串解包为二进制只会给出一个无法使用的数字。我尝试通过将字符串拆分为 4 个字母的包然后将它们解包来进行字符串解包,但是我在重新打包时遇到了问题,它给出了随机字符而不是原始字符。
我如何对很长的字符串进行解包,然后将它们存储在一个字符串(仅由 0 和 1 组成)或一个大数组(其中每个值是 0 或 1,关键指示该位的位置) ?
您尝试过 GMP 库吗?手册页 GMP
快速测试代码:
<?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)
我试图在 PHP 中进行某种 XOR 二进制加密算法,因此我需要将大字符串转换为二进制。问题是 PHP 在二进制计算/存储方面似乎非常有限,因为只有六个字母的字符串,一旦转换,就超过了 PHP INT 限制。
这意味着将一个大字符串解包为二进制只会给出一个无法使用的数字。我尝试通过将字符串拆分为 4 个字母的包然后将它们解包来进行字符串解包,但是我在重新打包时遇到了问题,它给出了随机字符而不是原始字符。
我如何对很长的字符串进行解包,然后将它们存储在一个字符串(仅由 0 和 1 组成)或一个大数组(其中每个值是 0 或 1,关键指示该位的位置) ?
您尝试过 GMP 库吗?手册页 GMP
快速测试代码:
<?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)