gpt4 book ai didi

asp.net-mvc - 在 ASP.NET Core 中生成唯一的随机数

转载 作者:行者123 更新时间:2023-12-04 12:39:15 26 4
gpt4 key购买 nike

我正在开发一个热点服务,使用 ASP.NET Core 构建一个 MVC 应用程序,我需要生成一个 6 位数字(100000 到 999999)作为用户连接和上网的密码使用权。该数字在数据库中必须是唯一的,并且会在一段时间后(每月一行)删除。

生成这个唯一编号的最佳方法是什么?我也在使用 Entity Framework,想知道这是否能以某种方式帮助我解决这个问题......

提前致谢!

最佳答案

好吧,只需执行以下操作就足够简单了:

var rand = new Random();
var uid = rand.Next(100000, 1000000);

但是,确保数据库中唯一性的唯一方法是 1) 查询以确保值首先不存在(尽管那里存在并发问题)或 2) 使列唯一,并捕获从中抛出的数据库异常约束验证。

简而言之,您必须与数据库一起做一些事情来确定它在数据库中是否真的是唯一的。如果池少于一百万,您很可能会经常发生冲突。

值得一提的是,正如@PeterO 指出的那样,这不会是远程安全的。从少于 100 万的候选人中强制碰撞是非常容易的。但是,如果您仍然以 6 个字符的数字结尾,那么使用加密 RNG 在这里无济于事。 如何获得随机数并不重要,重要的是该数字实际有多随机。这里的熵接近于零。

关于asp.net-mvc - 在 ASP.NET Core 中生成唯一的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61257880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com