设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2528|回复: 3
打印 上一主题 下一主题

[通用发布] 【不是创意的创意】字符密码生成器v1.5(2012年4月29日更新)

[复制链接]

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

跳转到指定楼层
1
发表于 2012-2-3 14:56:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 精灵使者 于 2012-4-29 16:05 编辑

精灵最近对密码产生了兴趣,于是精灵开始做随机序列生成器——密码符合复杂度要求的那种。
于是这个生成器每次运行可以生成一组密码,配合姓名输入处理就可以做一批更加复杂的解密密码输入器了……
嗯,就酱紫。
1.5整合了两种算法,提高灵活性
1.3-1.4 增添一个计算算法
1.2版更新:增加了复杂度认证。小于六位的密码将直接报告过短。
1.1版更新:完全简化了代码的生成方式
RUBY 代码复制
  1. #===============================================================
  2. #随机密码生成器v1.5
  3. #创意:orzfly,禾西 修改并优化:精灵
  4. #1.1版更新:完全简化了代码的生成方式
  5. #1.2版更新:增加了复杂度认证。小于六位的密码将直接报告过短。
  6. #1.3-1.4 增添一个计算算法
  7. #1.5整合了两种算法,提高灵活性
  8. #===============================================================
  9.  
  10. #必要参数
  11. Specialnum = [*33..47]+[*58..64]+[*91..96]+[*123..126]
  12.  
  13. #-----------------------------------------------------------------
  14. #  length: 密码长度
  15. #  type:计算类型
  16. #-----------------------------------------------------------------
  17.  
  18. def rand_password(length = 6,type = 0)
  19.   #密码过短提示
  20.   return "length is too short!" if length < 6
  21.   #获取必要的方法参数
  22.   if type = 0
  23.     length < 12 ? @pastype = 1 : @pastype = 2
  24.   else
  25.    @pastype = type
  26.   end
  27.   case @pastype
  28.   when 1
  29.   #计算算法,适合短密码
  30.   chrArr = []
  31.   chrArr << (48+rand(10)).chr
  32.   chrArr << (65+rand(26)).chr
  33.   chrArr << (97+rand(26)).chr
  34.   chrArr << Specialnum[rand(Specialnum.size)].chr
  35.   chrArr.delete_at(rand(4))
  36.   (length-3).times{chrArr << (33+rand(93)).chr}
  37.   ret = ""
  38.   for i in 0...length
  39.     ret += chrArr.delete_at(rand(length-i))
  40.   end
  41.   return ret
  42.   when 2
  43.   #校验算法,适合长密码
  44.   loop do
  45.   str_type = 0  
  46.   ret = ''
  47.   ret = Array.new(length).inject(''){|str,x| str+(33+rand(93)).chr}
  48.   str_type += 1 if re.index(/[A-Z]/)
  49.   str_type += 1 if re.index(/[a-z]/)
  50.   str_type += 1 if re.index(/\d/)
  51.   str_type += 1 if re.index(/[^\w]/)
  52.   return ret if str_type > 2
  53.   end
  54.   else
  55.   #意外出错返回
  56.   return "Type Error!"
  57.   end
  58. end



代码使用方法:插入main之前使用,调用方法:

rand_password(你需要的字符长度),默认为6位

顺便备份一些东西……

  1. #===============================================================
  2. #随机顺序生成器v1.1
  3. #创意:orzfly
  4. #===============================================================
  5. def shufflerange(len = 6)
  6. (1..len).to_a.sort_by{rand}
  7. end
复制代码
用法 shufflerange(你需要的字符长度)

复杂度要求:大写,小写,字符,数字四者至少选3个。

点评

是你在水区先发的随机密码贴啊魂淡!  发表于 2012-2-3 19:18
不是我的创意是精灵的创意 = =b  发表于 2012-2-3 19:07
- =b这几天好多随机生成密码的代码  发表于 2012-2-3 16:52
收到。由于太简单,那么就撤销吧  发表于 2012-2-3 16:33

Lv2.观梦者

梦石
0
星屑
775
在线时间
173 小时
注册时间
2008-11-22
帖子
112
2
发表于 2012-2-3 16:04:09 | 只看该作者
使用方法是rand_password(你需要的字符长度)吧

点评

OK,已经修正  发表于 2012-2-3 16:58
random_password(你需要的字符长度) 我是说你把rand写成了random了  发表于 2012-2-3 16:40
嗯哪,类似于rand_password(8)  发表于 2012-2-3 16:27
又不知道干什么好了。。。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

3
 楼主| 发表于 2012-2-6 13:47:38 | 只看该作者
本帖最后由 精灵使者 于 2012-2-6 14:48 编辑

好吧,我移动到讨论区的目的就是,这个字符密码生成器生成的密码有的时候并没有完全符合复杂度要求——
复杂度要求:位数至少6位以上(这个简单)
问题是,必须要包含以下四类密码字的至少三类以上:
1、大写字母,2,小写字母,3,数字,4,特殊符号。
版本已更新到1.2见上楼


‘‘──精灵使者于2012-4-29 13:28补充以下内容

OK,更新到1.5版
’’
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
681
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

4
发表于 2012-4-30 17:43:48 手机端发表。 | 只看该作者
好吧,那个随机64,97随机字码是什么?

点评

英文  发表于 2013-1-28 23:45
欢迎点此进入我的egames.wink.ws,有RMQQ堂等

[url=http://rpg.blue/thread-317273-1-1.html]短篇八-赶选

http://yun.baidu.com/share/link?shareid=2158225779&uk=169642147&third=0


历险ARPG赢回你的疆域新的战斗模式?…………点击这里:[宋乱贼狂 for QQ堂]
http://rpg.blue/group-368-1.html
programing ....?
[url=http://rpg.blue/thrd-234658-1-1.html]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-10 11:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表