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

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

等待高手。
...全文
301 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
内容概要:本文档聚焦于通信系统中的调制解调技术与Turbo码的结合应用,系统研究了GMSK调制的二比特差分解调方法,以及Turbo码分别与BPSK、GMSK调制方式联合使用的系统性能。通过Matlab平台实现了完整的通信链路仿真,涵盖信号调制、信道编码、解调解码及误码率分析等关键环节,深入探讨了不同调制体制下Turbo编码系统的抗干扰能力与频谱效率表现。研究不仅提供了算法实现代码,还包含了详细的性能对比分析,有助于理解现代数字通信中高效编码调制技术的设计原理与工程实现。此外,文档附带多个相关科研方向的仿真案例,展现出广泛的技术延展性与实际应用价值。; 适合人群:具备通信原理、数字信号处理等相关基础知识,熟悉Matlab编程环境,正在从事无线通信系统仿真、信道编码理论研究或相关领域科研工作的研究生、高校教师及工程技术研究人员。; 使用场景及目标:①深入掌握GMSK调制与Turbo码相结合的技术机制,理解其在提高通信可靠性与频谱利用率方面的优势;②熟练运用Matlab构建完整的数字通信仿真系统,完成从调制编码到解调译码的全流程建模与性能评估;③为无人机通信、卫星通信、移动通信等实际应用场景下的高可靠传输系统设计提供理论支持与算法参考。; 阅读建议:建议结合所提供的Matlab代码逐模块运行与调试,重点关注GMSK差分解调过程与Turbo译码的迭代收敛特性,同时可参考文档中列出的其他研究课题拓展仿真范围,提升综合科研与工程实践能力。

34,875

社区成员

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

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