Как сгенерировать ключ для php файла, срок действия которого истекает через 10 дней.И другие пользователи не могут выполнить API после истечения срока действия ключа - PullRequest
0 голосов
/ 16 мая 2019

Я хочу сгенерировать ключ, который действителен в течение 10 дней со дня его создания. Так что любой, у кого есть ключ, может запустить API в течение 10 дней. Я хочу, чтобы это было чисто в php, и ни сеанс, ни cookie не должны использоваться.

Я попытался сохранить ключ и дату в файле, разделенном вкладкой. Но я хочу что-то, что для хранения файлов не требуется. Все это можно сделать, используя только php.

Я хочу, чтобы любой, имеющий ключ, мог передать его в качестве параметра URI, например http: www.example.com/key=abcdqwerty, и этот ключ должен быть действителен только в течение 10 дней.

1 Ответ

1 голос
/ 16 мая 2019

Дешевый способ - это ввести 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://3v4l.org/Is4oT

...