我对此真的很陌生,需要创建一个 2 到 20 个字符之间的 url 安全令牌,并且只允许使用字母数字字符(字母和数字)。我使用此令牌由支付提供商进行处理。
我有下面的方法,但我得到一个错误,令牌无效。如何重写该方法,使其仍然是 url 安全的,但不超过 20 个字符并且只使用字母数字字符?
token = SecureRandom.urlsafe_base64
我对此真的很陌生,需要创建一个 2 到 20 个字符之间的 url 安全令牌,并且只允许使用字母数字字符(字母和数字)。我使用此令牌由支付提供商进行处理。
我有下面的方法,但我得到一个错误,令牌无效。如何重写该方法,使其仍然是 url 安全的,但不超过 20 个字符并且只使用字母数字字符?
token = SecureRandom.urlsafe_base64
根据文档 SecureRandom.urlsafe_base64
将返回“-”和“_”,它们是您说过不想要的字符。
您可以使用SecureRandom.hex(n)
来获取2*n
包含 az 和 0-9 的字符。它仍然是 URL 安全的。您的最终代码将是:
token = SecureRandom.hex # without `n` token will be 16 characters long.