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 生成支付令牌(在移动应用交易中)?