如何生成类似手机冲值卡密码的不重复16位数字?

mmcgzs 2014-04-28 09:28:15
要求:
1、提升密码的安全性,避免用户猜中。
2、密码需要持续生成,比如每月生成5万个,尽量能够不考虑前期数据的情况下避免重复。

等待高手。
...全文
318 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
haitao 2014-04-28
  • 打赏
  • 举报
回复
引用 2 楼 mmcgzs 的回复:
[quote=引用 1 楼 ap0405140 的回复:] 产生16位随机数,

select cast(rand()*10000000000000000 as bigint)
可以保证16位的长度吗?最好不要前面是0的。[/quote] 生成随机的15位,前面再加一位 1-9的随机值
唐诗三百首 2014-04-28
  • 打赏
  • 举报
回复
引用 2 楼 mmcgzs 的回复:
可以保证16位的长度吗?最好不要前面是0的。

-- 建测试表
create table #t(c varchar(50))

create index ix_#t on #t(c)


-- 产生10000个不重复的16位随机数.
set nocount on

declare @x int,@t varchar(50),@r float
select @x=1

while(@x<=10000)
begin
 select @r=rand()
 select @r=case when @r>0.1 then @r else @r+0.1 end
 select @t=rtrim(cast(@r*10000000000000000 as bigint))
 
 if not exists(select 1 from #t where c=@t)
 begin
   insert into #t(c) values(@t)
   select @x=@x+1
 end
end

set nocount off


-- 结果
-- 1 长度统计
select len(c) 'length',
       count(1) 'qty'
 from #t
 group by len(c) 
/*
length      qty
----------- -----------
16          10000

(1 row(s) affected)
*/


-- 2 去重复统计
select count(distinct c) 'qty' from #t
/*
qty
-----------
10000

(1 row(s) affected)
*/
xdashewan 2014-04-28
  • 打赏
  • 举报
回复
做过此类密码生成,但没做过16位那么长的,给你个思路,你可以考虑下,如果有更好的思路也请务必分享下。 无论多少数据,只要在一定范围内,若连续生成,总会被人猜中,所以要对产生的数字加校验位。校验位的复杂程度各种各样,简单的比如,所有数字的总和取后两位做为校验位,或者把英文转化为数字,这样由于用户不能简单的得知你校验位的算法,所以也就无法靠猜连续位数获得其他卡号
mmcgzs 2014-04-28
  • 打赏
  • 举报
回复
引用 1 楼 ap0405140 的回复:
产生16位随机数,

select cast(rand()*10000000000000000 as bigint)
可以保证16位的长度吗?最好不要前面是0的。
唐诗三百首 2014-04-28
  • 打赏
  • 举报
回复
产生16位随机数,

select cast(rand()*10000000000000000 as bigint)
  • 打赏
  • 举报
回复
生成一个guid
select left(REPLACE(newid(),'-',''),16)

CB41550104064DC5
歌曲长寿——为什么有些歌曲经久不衰 为什么一个轨道流了好几年,而一个更好的轨道在几周内就消失了?此数据集如下 45000首已发布的曲目——它们的音频特征、分布范围和流轨迹-- 令人不安的发现是:一首歌是如何被推送的,预示着它的寿命;它如何 听起来几乎没有。 标题:音频功能基本上无法解释一首曲目的3年流(R²≈0),而 发行——播放列表、营销、TikTok——和早期势头解释了其中的大部分。流媒体是 穿着创意服装的发行游戏。 45000条轨道·21列·3年流/慢燃烧器/命中目标 --- 为什么这个数据集 Kaggle有很多“Spotify音频功能”表,用于根据跳舞能力和 能量。他们大多发现微弱的信号,然后不说为什么。此数据集明确说明了原因: 它将音频功能与分布变量(播放列表位置、标签、营销、TikTok)配对 病毒性)和早期动量信号,因此您可以看到音频质量下降。 它再现的数字 -极度集中:前1%的轨道吸引了所有溪流的49%,前10%的溪流吸引了约84%的溪流 赢家通吃最多的现实(Luminate报告称,前1%的艺术家获得了约90%的完整流媒体 目录,其中包括约88%从未清除1000次播放的曲目)。 -半衰期短:中位轨道在其峰值的一半以上花费约50天——“大多数艺术家有两个 在歌曲褪色之前几个月才能赚钱。“只有约10%是慢燃烧器(半衰期>150天)。 -分发胜过音频:播放列表添加、编辑位置和TikTok病毒式传播都是相互关联的 ~0.3,3年流;音频特征(能量、效价、可跳舞性)相关系数约为0。 -马修效应:第一个月的流量与3年的早期动量相关约0.88 播放列表驱动了大约一半的收听,并放大了已经移动的曲目。 标题结果 预测日志3年流: |使用的功能|R²| |---|---| |仅音频(能量、效价、可跳舞性、节奏等)|≈0.00| |分发(播放列表、标签、营销、TikTok)|≈0

34,876

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧