PHP - 为交易生成令牌

Posted

技术标签:

【中文标题】PHP - 为交易生成令牌【英文标题】:PHP - Generating tokens for transactions 【发布时间】:2016-11-27 13:33:43 【问题描述】:

我需要为银行应用程序(仅限生产)生成一次性且唯一的类似Stripe 令牌来表示帐户和交易,这样做的安全且适当的方法是什么?

我可以使用random_bytes()吗?

如果标记是字母数字而不仅仅是数字会更好。 例如,Stripe 令牌看起来像 tok_382r1O2IZ7IgsfwNFATX4xax

【问题讨论】:

除了提供的答案 - 您可能使用过 base64,因为它比 bin2hex 【参考方案1】:

您可以使用函数 bin2hex 将字节转换为 base 62 字符串。

$token = bin2hex(random_bytes(16)); //generates a crypto-secure 32 characters long 

您只需在开头附加一个字符串即可轻松地为其添加前缀。

【讨论】:

【参考方案2】:

您可以使用以下内容:

bin2hex(openssl_random_pseudo_bytes(8))

Here are the docks 了解如何根据您的需要使用它。

【讨论】:

【参考方案3】:

如果您使用的是 php 7,那么新的 random_bytes() 函数是一个安全的随机数/字符串生成器,并且是 PHP 的推荐方法。

如果您尚未迁移到 PHP 7,Github 上有一个兼容的 PHP 5 替代方案,名为 random_compat。

【讨论】:

谢谢,我在使用 PHP 7 时遇到了random_bytes()

以上是关于PHP - 为交易生成令牌的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google Pay 和 Apple Pay 中为 Authorize.net 生成支付令牌(在移动应用交易中)?

如何使用Curl在没有前端的格子api的后端生成公共令牌?

Firebase自定义令牌php服务器生成错误

Braintree沙盒账户不显示交易

php Laravel Tymon JWT从凭证生成令牌

使用slim-jwt-auth生成令牌