关于201的卡号和密码的生成

vitamines 2005-10-21 09:11:29
众所周知,201的卡号和密码的生成有一定的规则
1.总体上是连续的,但会间隔很多空号
2.卡号绝对不重复

现在我想生成类型的卡号和密码,先说说我的思路

第一种:
生成一个随机数,然后乘以1.0E10,取整后就是卡号,密码的算法类似
这样我认为很容易出现重复

第二种:
加入时间戳,即卡号前几位是时间戳,后几位是随机数
这种方法产生的卡号太长,不适用

第三种
生成UUID
硬件相关,绝对不重复
太长了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第四种
生成随机数后md5加密,取16位
不使用

第五种
随便哪种算法生成都可以,每生成一个就和数据库里的号码对比,如果相同,则抛弃该数
缺点是但数量大的时候会很慢

这是我的想法,你有什么其他的想法吗?
...全文
309 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
rabbitweng 2005-10-23
  • 打赏
  • 举报
回复
即先按顺序建立一个完整的空间,然后将其顺序打乱,然后按顺序取,不就行了,这样时间只可能花在打乱顺序的那个过程(即为一次性的),应该比那种随机再在数据库中比较效率高的多,特别是当可用的标识快用完时,效率更是低下了
rabbitweng 2005-10-23
  • 打赏
  • 举报
回复
我想可以从打扑克过程的洗牌过程能得到一种如何得到不重复的随机数的思想吧
tyhegg 2005-10-22
  • 打赏
  • 举报
回复
呵呵,没这么复杂。每张冲值卡在数据库中都有一条表记录对应,里面记录了密文、有效期、是否已使用等信息。密文是用不可逆的加密算法生成的。
vitamines 2005-10-22
  • 打赏
  • 举报
回复
第二种:
加入时间戳,即卡号前几位是时间戳,后几位是随机数
这种方法产生的卡号太长,不适用
===================================
比较喜欢这种方式,长短自己可以控制的呀...方便

========================================
我想生成10-12位的卡号,如果用这种方式,取的位数太短,很容易重复的
vitamines 2005-10-22
  • 打赏
  • 举报
回复
To:jsjjms(嵌入研究嵌入系统)

小弟没有听过"多方组合方式"
有一个问题:这种算法是否和数据库类型相关,比如我在Oracle上实现了,如果移至mysql,mysql不支持怎么办?
vitamines 2005-10-22
  • 打赏
  • 举报
回复
to: jsjjms(嵌入研究嵌入系统)高手啊~~~~~~~~
我正在写这段程序,现在采用的是Math.random()产生随机数,插入数据库的时候校验一下,如果有重复就丢掉这个数据,一会写完了回来揭帖
snowbirdfly 2005-10-22
  • 打赏
  • 举报
回复
学习~~~
jsjjms 2005-10-22
  • 打赏
  • 举报
回复
你也可以学手机SIM卡内部标识码,
不使用时间也可以,使用国家码,地区码...
虽然随机组合,也很难重复,
SIM卡的内部认证号码全球唯一。
jsjjms 2005-10-22
  • 打赏
  • 举报
回复
第二种:
加入时间戳,即卡号前几位是时间戳,后几位是随机数
这种方法产生的卡号太长,不适用
===================================
比较喜欢这种方式,长短自己可以控制的呀...方便

========================================
我想生成10-12位的卡号,如果用这种方式,取的位数太短,很容易重复的
------------------------------------------------------------------

如果你只取日-时-分 后面的数据随机,你可以产生不重复的数据也很多了。
jsjjms 2005-10-22
  • 打赏
  • 举报
回复
To:jsjjms(嵌入研究嵌入系统)

小弟没有听过"多方组合方式"
有一个问题:这种算法是否和数据库类型相关,比如我在Oracle上实现了,如果移至mysql,mysql不支持怎么办?
------------------------------------
确实没有哪本书上说“多方组合”,只是我想用这种方式,却找不到一个很好的名字,自己取的。不好意思。。
其实所谓多方组合并不是一定要使用数据库技术的(用文件系统也可以),只是有数据库你可以生成更多的数据,
数据库对这样一个算法的产生只是用来store数据,并不会影响数据库本身的构造,你别说移
到mysql上,就是放到Excel 里都行。
Kenny_Glacier 2005-10-21
  • 打赏
  • 举报
回复
jsjjms(嵌入研究嵌入系统)
的好
  • 打赏
  • 举报
回复
记下
jsjjms 2005-10-21
  • 打赏
  • 举报
回复
我再提供一种方式,叫多方组合方式,可以利用数据库技术,

随机生成一些短的但不相同的数字串,然后随即组合。。

比如生成 10堆数据, 然后从每堆短数据中取一个组成新的数据。
jsjjms 2005-10-21
  • 打赏
  • 举报
回复
第二种:
加入时间戳,即卡号前几位是时间戳,后几位是随机数
这种方法产生的卡号太长,不适用
===================================
比较喜欢这种方式,长短自己可以控制的呀...方便
v41dugu 2005-10-21
  • 打赏
  • 举报
回复
。。。。。感觉都被你说完了~~帮你顶~~
数据库应用系统设计与实现 实验类型:设计型 实验地点:2楼312 实验时间:12月14日、21日周五1-3/5-7节 实验内容: 系统概述: 某银行需要开发ATM存取款机系统实现如下功能: 1)开户(到银行填写开户申请单,卡号自动生成) 2)取款 3)存款 4)查询余额 题目要求: 一、建库、建表、建约束 1、使用SQL创建表 客户信息表userinfo 字段名称 说明 备注 customerID 顾客编号 自动编号(标识列),从1开始,主键 用序列sequence实现,用其属性:nextval customerName 开户名 必填 PID 身份证号 必填,智能是18位或15位,唯一约束 check约束length()函数 telephone 联系电话 必填,11位手机号 check约束,’[0-9]’ address 居住地址 银行卡信息表cardinfo 字段名称 说明 cardID 卡号 必填,主键,银行的卡号规则和电话好吗一样,一般前8位代表特殊含义,如某综合某支行等,假定该行要求其营业厅的卡号格式为10103576**** ***开始,每4位号码后有空格,卡号一般是随机产生。 curType 货币种类 必填,默认为RMB savingTate 存款类型 活期/定活两便/定期 openDate 开户日期 必填,默认为系统当前日期 openMoney 开户金额 必填,不低于1元 balance 余额 必填,不低于1元,否则将销户 pass 密码 必填,6位数字,开户时默认为6个“6” IsReportloss 是否挂失 必填,是/否值,默认为“否” customerID 顾客编号 外键,必填,表示该卡对应的顾客编号,一位顾客允许办理多张卡号 交易信息表transinfo 字段名称 说明 transDate 交易日期 必填,默认为系统当前日期 cardID 卡号 必填,外键 transType 交易类型 必填,只能是存入/支取 transMoney 交易金额 必填,大于0 remark 备注 可选,其他说明 2、使用SQL语言在每个表上添加约束 主键约束、外键约束、CHECK约束、默认约束、非空约束 二、插入测试数据 使用SQL语言向每个表中插入至少3条记录 三、模拟常规业务 1)修改客户密码 2)办理银行卡挂失 3)统计银行资金流通余额和盈利结算 银行资金流通余额=总存入金额-总支取金额 盈利结算=总支取金额 * 0.008 – 总存入金额 * 0.003 4)查询本周开户的卡号,显示该卡相关信息 5)查询本月交易金额最高的卡号 6)查询挂失账号的客户信息 四、利用视图实现数据查询 1)为客户提供以下3个视图供其查询该客户数据 客户基本信息:vw_userInfo 银行卡信息:vw_cardInfo 银行卡交易信息:vw_transInfo 2)提供友好界面,要求各列名称为中文描述 3)调用创建的视图获得查询结果 五、用存储过程实现业务处理 1)完成开户业务 2)完成取款或存款业务 3)根据卡号打印对账单 4)查询、统计指定时间段内没有发生交易的账户信息
密码管理器SafeInCloud Pro 允许您在加密数据库中保护您的登录名,密码和其他私人信息的安全。您可以通过自己的云帐户将数据与其他手机,平板电脑,Mac或PC同步。 没有订阅,没有月租费!您只需购买一次SafeInCloud即可在所有Android设备上使用它,无需任何额外费用。 主要特点 ◆易于使用 ◆材料设计 ◆黑色主题 ◆强加密(256位高级加密标准) ◆云同步(谷歌驱动器,Dropbox,OneDrive,Yandex磁盘,NAS,ownCloud,WebDAV) ◆使用指纹登录(三星设备)和Android 6.0设备) ◆Android Wear应用程序 ◆密码强度分析 ◆密码生成器 ◆浏览器集成 ◆免费桌面应用程序(Windows,Mac) ◆自动数据导入 ◆跨平台 易于使用 自己动手,享受易于使用但功能强大的用户界面。 材料设计 SafeInCloud经过全面重新设计,与Google的新Material Design用户界面语言相匹配。除了标准的Light主题,SafeInCloud还有一个Dark主题选项,可以帮助您节省大量的电池寿命。 强大的加密您的数据始终在设备和云中使用强大的256位高级加密标准(AES)进行加密。该算法被美国政府用于保护最高机密信息。AES也在全球广泛采用,并成为事实上的加密标准。 云同步 您的数据库会自动与您自己的云帐户(Google Drive,Dropbox,OneDrive,Yandex磁盘,NAS,ownCloud,WebDAV)同步。因此,您可以轻松地将整个数据库从云还原到新手机或计算机(如果丢失或升级)。您的手机,平板电脑和计算机也会通过云自动同步。 使用 指纹识别登录您可以使用指纹传感器在设备上立即解锁带有指纹的SafeInCloud。所有三星设备均可使用此功能。其他制造商提供的设备应为Android 6.0或更高版本。 ANDROID WEAR APP 您可以在手腕上放置一些选定的卡片,以便在跑步时轻松访问它们。这些可能是您的信用卡密码,门和密码密码强度分析 SafeInCloud会分析您的密码强度,并在每个密码旁边显示一个强度指示器。强度指示器显示密码的估计破解时间。所有密码较弱的卡都标有红色标志。 密码生成 密码生成器可帮助您生成随机的和安全的密码。还有一个选项可以生成令人难忘但仍然强大的密码。 浏览器集成 Desktop应用程序与浏览器集成。这允许您将密码直接粘贴到网页中。您无需手动将SafeInCloud中的密码复制并粘贴到浏览器中。移动应用程序包含一个内置浏览器,具有类似的密码自动填充功能。 免费的桌面APP 从http://www.safe-in-cloud.com下载Windows或Mac OS免费桌面应用程序到您的计算机上能够访问你的数据库。桌面应用程序还可以使用硬件键盘快速轻松地进行数据输入和编辑。 自动数据导入 桌面应用程序可以自动从另一个密码管理器导入您的数据。您无需手动重新输入所有密码。 CROSS PLATFORM SafeInCloud可在以下平台上使用:Mac(OS X),iOS(iPhone和iPad),Windows和Android。 什么是新的 ◆访问文件和联系人的权限仅在应用需要时才提供,而不是提前 ◆改进和错误修复 如果您有任何问题,建议或问题,请联系support@safe-in-cloud.com 。 Mod Info: 无需LP或Google Play Modded。
SafeInCloud密码管理器可让您将登录名,密码和其他私人信息安全可靠地保存在加密的数据库中。您可以通过自己的云帐户将数据与另一部手机,平板电脑,Mac或PC同步。 没有订阅,没有月租费!您只需购买一次SafeInCloud,即可在所有Android设备上使用它,而无需支付任何额外费用。 主要特征 ◆易于使用 ◆材质设计 ◆黑色主题 ◆强加密(256位高级加密标准) ◆云同步(Google Drive,Dropbox,OneDrive,Yandex Disk,NAS,ownCloud,WebDAV) ◆使用指纹登录(三星设备) &Android 6.0设备) ◆Android Wear应用程序 ◆密码强度分析 ◆密码生成器 ◆浏览器集成 ◆免费桌面应用程序(Windows,Mac) ◆自动数据导入 ◆跨平台 易于使用 自己尝试并享受易于使用但功能强大的用户界面。 物料设计 SafeInCloud进行了完全重新设计,以匹配Google的新型“物料设计”用户界面语言。除了标准的Light主题外,SafeInCloud还具有Dark主题选项,可帮助您节省大量电池寿命。 强加密 始终使用强大的256位高级加密标准(AES)在设备和云中对数据进行加密。美国政府使用此算法来保护最高机密信息。AES在全世界也被广泛采用,并已成为事实上的加密标准。 云同步 您的数据库会自动与您自己的云帐户(Google Drive,Dropbox,OneDrive,Yandex Disk,NAS,ownCloud,WebDAV)同步。因此,您可以轻松地将整个数据库从云还原到新的电话或计算机(如果丢失或升级)。您的手机,平板电脑和计算机还可以通过云自动彼此同步。 使用 指纹登录您可以在带有指纹传感器的设备上使用指纹立即解锁SafeInCloud。此功能在所有Samsung设备上均可用。其他制造商的设备应具有Android 6.0或更高版本。 ANDROID WEAR APP 您可以将一些选定的卡片放在手腕上,以便在奔跑中轻松访问它们。这些可能是您的信用卡PIN,门和储物柜代码。 密码强度分析 SafeInCloud分析您的密码强度,并在每个密码旁边显示一个强度指示器。强度指示器显示密码的估计破解时间。所有密码较弱的卡均标有红色标记。 密码生成 密码生成器可帮助您生成随机的和安全的密码。还有一个选项可以生成令人难忘但仍然很安全的密码。 浏览器集成 桌面应用程序与浏览器集成。这使您可以将密码直接粘贴到网页中。您无需手动将密码从SafeInCloud复制并粘贴到浏览器中。该移动应用程序包含一个内置浏览器,该浏览器具有类似的密码自动填充功能。 免费桌面应用程序 从下载Windows或Mac OS免费桌面应用程序http://www.safe-in-cloud.com到您的计算机上能够访问你的数据库。桌面应用程序还可以使用硬件键盘轻松快捷地进行数据输入和编辑。 自动数据导入 桌面应用程序可以自动从另一个密码管理器导入数据。您无需手动重新输入所有密码。 跨平台 SafeInCloud在以下平台上可用:Mac(OS X),iOS(iPhone和iPad),Windows和Android。 什么是新的 ◆还原默认模板 ◆Android 8.1支持 ◆自适应应用程序图标 ◆改进的备份/还原UI ◆本地化更新 ◆错误修复

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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