首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成10位安全令牌

生成10位安全令牌
EN

Stack Overflow用户
提问于 2012-02-13 07:53:22
回答 1查看 1.8K关注 0票数 1

我正在研究生成10位数安全令牌的算法和方法。我尝试过以下几种方法:

代码语言:javascript
复制
        RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
        var buffer = new byte[4];
        rng.GetBytes(buffer);
        int result = BitConverter.ToInt32(buffer, 0);
        var token = Math.Abs(result).ToString();

问题是RNGCryptoServiceProvider似乎返回了大约9到10位数字。我已经考虑添加一个额外的随机数,如果它包含少于10位,但我不相信这是最好的方法。

感谢任何建议或建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-13 07:58:09

只需用零填充结果即可得到10位数字。此外,您应该使用ulong来获取完整的10位数字范围。

代码语言:javascript
复制
var buffer = new byte[8]; // 8 bytes for a long
rng.GetBytes(buffer);
ulong result = BitConverter.ToUInt64(buffer, 0); // unsigned to avoid having to use Abs
var token = result.ToString("D10"); // pads the result to 10 digits
token = token.Substring(token.Length - 10); // strip out extra digits, if any
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9253902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档