3

我对此真的很陌生,需要创建一个 2 到 20 个字符之间的 url 安全令牌,并且只允许使用字母数字字符(字母和数字)。我使用此令牌由支付提供商进行处理。

我有下面的方法,但我得到一个错误,令牌无效。如何重写该方法,使其仍然是 url 安全的,但不超过 20 个字符并且只使用字母数字字符?

token = SecureRandom.urlsafe_base64
4

1 回答 1

1

根据文档 SecureRandom.urlsafe_base64将返回“-”和“_”,它们是您说过不想要的字符。

您可以使用SecureRandom.hex(n)来获取2*n包含 az 和 0-9 的字符。它仍然是 URL 安全的。您的最终代码将是:

token = SecureRandom.hex # without `n` token will be 16 characters long.
于 2016-01-04T18:39:26.067 回答