我需要为一个银行应用程序(仅限生产环境)生成一次性且唯一的类似于Stripe令牌,以代表账户和交易。那么,哪种方法既安全又适当呢?
我可以使用random_bytes()
吗?
如果令牌是字母数字组合而不仅仅是数字,那将更好。例如,Stripe令牌看起来像tok_382r1O2IZ7IgsfwNFATX4xax
我需要为一个银行应用程序(仅限生产环境)生成一次性且唯一的类似于Stripe令牌,以代表账户和交易。那么,哪种方法既安全又适当呢?
我可以使用random_bytes()
吗?
如果令牌是字母数字组合而不仅仅是数字,那将更好。例如,Stripe令牌看起来像tok_382r1O2IZ7IgsfwNFATX4xax
您可以使用bin2hex函数将字节转换为基于62进制的字符串。
$token = bin2hex(random_bytes(16)); //generates a crypto-secure 32 characters long
您可以通过将一个字符串添加到开头来轻松地添加前缀。random_bytes()
函数是一个安全的随机数/字符串生成器,这是在PHP中推荐的方法。random_bytes()
函数,因为我正在使用PHP 7。 - Brad Turner
base64
,因为它比bin2hex
更短。 - zerkms