在php中处理大数时输出0
我正在尝试做一些diffie hellmann,它可以很好地处理较小的生成器、mod和私钥。但当数字变大时,它只输出零。我看过其他没有真正解决办法的帖子。它可以在php.ini中配置吗在php中处理大数时输出0,php,Php,我正在尝试做一些diffie hellmann,它可以很好地处理较小的生成器、mod和私钥。但当数字变大时,它只输出零。我看过其他没有真正解决办法的帖子。它可以在php.ini中配置吗 $gen = 877; $mod = 80182923; $saltA = 517; $saltB = 1517; echo "calculation of Ga og Gb<br>"; echo "<br>user A shareable value&
$gen = 877;
$mod = 80182923;
$saltA = 517;
$saltB = 1517;
echo "calculation of Ga og Gb<br>";
echo "<br>user A shareable value<br>";
$calculatedSecretKeyA = ($gen**$saltA) % $mod;
echo $gen . "^" . $saltA . " mod " . $mod . " = " . $calculatedSecretKeyA;
echo "<br>user B shareable value<br>";
$calculatedSecretKeyB = ($gen**$saltB) % $mod;
echo $gen . "^" . $saltB . " mod " . $mod . " = " . $calculatedSecretKeyB;
echo "<br>user As calc of secret key <br>";
$calcKeyA = ($calculatedSecretKeyB**$saltA) % $mod;
echo $calculatedSecretKeyB . "^" . $saltA . "" . " mod " . $mod . " = " . $calcKeyA;
echo "<br><br>user Bs calc of secret key <br>";
$calcKeyB = ($calculatedSecretKeyA**$saltB) % $mod;
echo $calculatedSecretKeyA . "^" . $saltB . "" . " mod " . $mod . " = " . $calcKeyB;
echo "<br><br>bruteforcer A calc of secret key <br>";
$calcKeyB = ($calculatedSecretKeyA**7) % $mod;
echo $calculatedSecretKeyA . "^" . 7 . "" . " mod " . $mod . " = " . $calcKeyB;
$gen=877;
$mod=80182923;
$saltA=517;
$saltB=1517;
echo“计算Ga og Gb
”;
echo“
用户可共享值
”;
$calculatedSecretKeyA=($gen**$saltA)%$mod;
echo$gen。"^" . $萨尔塔。“mod”$摩登派青年" = " . $计算secretkeya;
echo“
用户B可共享值
”;
$calculatedSecretKeyB=($gen**$saltB)%$mod;
echo$gen。"^" . $索尔特。“mod”$摩登派青年" = " . $计算secretkeyB;
echo“
用户作为密钥的计算
”;
$calcKeyA=($calculatedSecretKeyB**$saltA)%$mod;
echo$calculatedSecretKeyB。"^" . $萨尔塔。"" . “mod”$摩登派青年" = " . $卡尔卡亚;
echo“
用户计算密钥
”;
$calcKeyB=($calculatedSecretKeyA**$saltB)%$mod;
echo$calculatedSecretKeyA。"^" . $索尔特。"" . “mod”$摩登派青年" = " . $calcKeyB;
echo“
强制计算密钥
”;
$calcKeyB=($calculatedSecretKeyA**7)%$mod;
echo$calculatedSecretKeyA。"^" . 7."" . “mod”$摩登派青年" = " . $calcKeyB;
您可以使用GMP库进行此操作():
echo“计算Ga og Gb
”;
echo“
用户可共享值
”;
$calculatedSecretKeyA=gmp\u mod(gmp\u pow($gen,$saltA),$mod);
echo$gen。"^" . $萨尔塔。“mod”$摩登派青年" = " . $计算secretkeya;
输出:
计算Ga og Gb用户A可共享值
877^517 mod 80182923=79127908
echo "calculation of Ga og Gb<br>";
echo "<br>user A shareable value<br>";
$calculatedSecretKeyA = gmp_mod ( gmp_pow ($gen, $saltA), $mod);
echo $gen . "^" . $saltA . " mod " . $mod . " = " . $calculatedSecretKeyA;