大家好,我想知道什么可以进一步随机化这个代码:
<?php
$key=md5('ILOVEYOU');
$serverseed = floor(time() / 5);
srand($serverseed);
$result = rand();
$modulus_result= $result % 100;
echo "before: ".$modulus_result."<br>";
echo "after: ".encrypt($modulus_result, $key)."<br>";
echo decrypt($modulus_result, $key);
function decrypt($string, $key){
$string = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($string), MCRYPT_MODE_ECB));
return $string;
}
function encrypt($string, $key){
$string = rtrim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $string, MCRYPT_MODE_ECB)));
return $string;
}
?>
对于那些偶然发现这个主题的人并且误解了这个主题,我没有使用这个功能来保护我网站内的任何内容,我只是想办法随机化这个函数,因为它使用time()作为参考。 ..
我需要从1-100生成一个随机int,这似乎有用,我只是在寻找其他方法来随机化它(如果我可以解释一下,添加某种“盐”而不加密任何形式。)
答案 0 :(得分:3)
此功能不会生成加密安全值,并且 不应用于加密目的。如果你需要一个 加密安全值,考虑使用random_int(), 而不是random_bytes()或openssl_random_pseudo_bytes()。
您可能希望改用random_int。
问题就是PHP 7引入的问题,因此您可能无法使用它。在这种情况下,您可以获得它here,如文档中所述。