I want to use authentication token, after various searches I found JWT token and another token generation method with md5.
Off for various reasons I do not want to use the token JWT and md5 seems to me to have a bad reputation.
So I found a method but I would like your opinion:
Generating a Byte String: https://www.php.net/manual/en/function.random-bytes.php
Then I convert that into Hexadecimal.
Finally, I concatenate that with the id of my user and salting.
I send this to my application (Android or web) than during a request to my service I decode the received token, and I will see the token contained in the id hidden in the token. So it is harder to find the token by brute force?
Note 1: that I would like to refresh the token by the future but for the moment it should be issued for an indefinite period.
Note 2: I do not want to use a library or framework just in php.
Code :
$bytes = random_bytes(32);
$part=bin2hex($bytes));
$shortpart=substr($part,0,17);
$id = #userid
$salt=#customsalt
$token=shortpart.$id.$salt;
Example :
$shortpart =f2e4d1f2a2dfedcf5
$id=1
$salt=4d2ze121
$token=f2e4d1f2a2dfedcf514d2ze121
The user or hacker doesn't know is id is hidden in the token.