gpt4 book ai didi

PHP int 到更长的字符串以用于 qrcode

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:39 25 4
gpt4 key购买 nike

我正在尝试构建一个可以通过扫描二维码来识别用户的应用程序。为此,我想使用主键作为标识符。由于整数的字符长度较短,因此作为二维码不太好看。

所以我的问题是:是否可以将 int 转换为长度超过 10-12 个字符(如果可能,固定长度)的字符串,字符和数字的混合可以反转为原始整数。

最佳答案

您可以做的是对您的用户 ID 进行 SHA256 算法并将其转换为二维码。然后,当用户读取二维码并向您发送 sha 值时,您尝试将其与数据库中用户 ID 的 SHA 进行匹配。

下面是从用户 ID 获取 SHA 哈希的方法:

$hash = hash('sha256', $userId); // The result is long enough string for QA

当您需要根据 SHA 查找用户时,请执行以下操作:

select * from users where SHA2(id, 256) = 'SHA_PROVIDED_BY_USER';

为了加快查找过程,您也可以在数据库中存储 SHA,这样查询就会快得多。

另一种选择是在数字前加上一些字母。它会给你随机字符串、漂亮的二维码,你可以用简单的正则表达式提取数字 ID。

使用 PHP random string generator 中的函数(不要忘记从 $characters 中删除数字)代码可能是:

//encoding
$size = 12;
$str = generateRandomString($size-strlen($userId)).$userId;

//decoding
preg_match('/(\d+)$/', $str, $matching);
$userId = $matching[1];

关于PHP int 到更长的字符串以用于 qrcode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29774669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com