首页 > 解决方案 > 使用 php 为 android 创建身份验证令牌

问题描述

我想使用身份验证令牌,经过各种搜索,我找到了 JWT 令牌和另一种使用 md5 生成令牌的方法。

出于各种原因,我不想使用令牌 JWT 和 md5 在我看来名声不好。

所以我找到了一种方法,但我想听听你的意见:

生成字节字符串:https ://www.php.net/manual/en/function.random-bytes.php

然后我将其转换为十六进制。

最后,我将它与我的用户的 id 和 salting 连接起来。

我将它发送到我的应用程序(Android 或 Web),而不是在对我的服务的请求期间我解码接收到的令牌,我将看到隐藏在令牌中的 id 中包含的令牌。那么通过蛮力找到令牌更难吗?

注意1:我想在未来刷新令牌,但目前它应该无限期发行。

注意 2:我不想只在 php.ini 中使用库或框架。

代码 :

$bytes = random_bytes(32);
$part=bin2hex($bytes));
$shortpart=substr($part,0,17);
$id = #userid
$salt=#customsalt
$token=shortpart.$id.$salt;

例子 :

$shortpart =f2e4d1f2a2dfedcf5
$id=1
$salt=4d2ze121
$token=f2e4d1f2a2dfedcf514d2ze121

用户或黑客不知道 id 是否隐藏在令牌中。

标签: phpandroidtoken

解决方案


经过一些研究,我认为更好的方法是:

$token = bin2hex(openssl_random_pseudo_bytes(32));

并自定义此字符串。


推荐阅读