超过PHP二进制限制

超过PHP二进制限制,php,string,binary,limit,Php,String,Binary,Limit,我试图在PHP中执行某种XOR二进制加密算法,因此我需要将大字符串转换为二进制。问题是PHP在二进制计算/存储方面似乎非常有限,因为只有六个字母的字符串,一旦转换,就会超过PHP INT限制 这意味着将一个大字符串解包成二进制只会给出一个不可用的数字。我试图通过将字符串拆分成4个字母的包来解包字符串,但在重新打包时遇到了问题,因为它会给出随机字符,而不是原始字符 如何将很长的字符串解包,然后将它们存储在一个字符串(仅由0和1组成)或一个大数组中(其中每个值都是0或1,表示该位位置的键)?您尝试过

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

这意味着将一个大字符串解包成二进制只会给出一个不可用的数字。我试图通过将字符串拆分成4个字母的包来解包字符串,但在重新打包时遇到了问题,因为它会给出随机字符,而不是原始字符


如何将很长的字符串解包,然后将它们存储在一个字符串(仅由0和1组成)或一个大数组中(其中每个值都是0或1,表示该位位置的键)?

您尝试过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)

是的,投了反对票,但没有评论。也许有人能解释我做错了什么?如果这篇文章在任何方面是非常错误的,我会删除它,没有问题。但是如果是的话告诉我。不,我不知道这个存在。我使用的是PHP5.5。那么,我要找教程了,谢谢。@Rackover有没有机会投赞成票或选择答案,如果有帮助的话?:)