我想生成一个密钥,从生成之日起10天内有效。这样任何拥有密钥的人都可以运行api 10天。我希望这是纯粹的php,没有会话或cookie应该使用。
我已尝试将密钥和日期存储在以制表符分隔的文件中。但我想要的东西,它不需要文件也用于存储。所有这些都可以只使用php来完成。
我希望任何拥有这个密钥的人都可以将它作为URI参数传递,比如http:www.example.com/ key =abcdqwerty,这个密钥的有效期应该只有10天。
发布于 2019-05-16 17:29:30
一种便宜的方法是md5日期,并将其用作密钥。
然后验证过去10天的循环,并将它们设置为md5,看看它们是否匹配。
这意味着您不需要保存密钥,并且对大多数用户来说都是安全的。
只有最书呆子的书呆子才会试着找出关键是什么,以及它是否能被破解。
// Create key
$key = md5("2019-05-16");
//$key = "5b6ed05ac59c0cae26957e39aceaa204";
//Validate
for($i=0; $i <= 10; $i++){
if($key == md5(date("Y-m-d", strtotime("-" . $i . " days")))){
echo "valid";
}
}一个有效而另一个无效的工作代码,请参见只有一个有效字符串的输出。
https://stackoverflow.com/questions/56165032
复制相似问题