编程C,C ++,Java,PHP,Ruby,图灵,VB
计算机科学加拿大 
编程C,C ++,Java,PHP,Ruby,图灵,VB  

用户名:    Password: 
  登记 登记    
 使用OptParse的密码生成器
指数 -> 编程,Ruby. -> 红宝石提交
查看上一个主题 可打印的版本下载主题 利率主题 订阅本主题私人信息刷新页面 查看下一个主题
作者 信息
空值




 邮政 发布: 星期四,2006年6月15日10:46  帖子主题:使用OptParse的密码生成器

我玩得开心,它可能只是派上用场,所以我以为我会分享。  很高兴

用法的例子:
代码:

$ ruby​​ pgen.rb.
soovmuvytv.
$ ruby​​ pgen.rb - 长= 20
bynnugipyeeghdbihcdn.
$ ruby​​ pgen.rb - length = 20-n
v3ji3aw1trzjlda5oax.
$ ruby​​ pgen.rb - length = 20-np
:sa6vafpummpttjp?qo:


有关选项的完整列表,请执行
代码:

$ ruby​​ pgen.rb - help


代码:

#!/ / usr / bin / env Ruby

#pgen.rb.
#于2006年6月15日星期四的Jesse H-K

要求'OptParse'

类阵列
    def random_choice
        self[rand(self.length)]
    end
结尾

def parse_options.(args)
    options = {}
 
    options[:length] = 10

   选择= optionparser.new do | OPTS |
        opts.banner = "Usage: pgen.rb [options]"

        opts.on("-n",
                "--numbers",
                "在密码中包含数字[0-9]。") do |n|
                    options[:numb] = n
                end
       
        opts.on("-p",
                "--punctuation",
                "在密码中包含常用标点字符。") do |p|
                    options[:punct] = p
                end
       
        opts.on("-u",
                "--uppercase",
                "在密码中包含大写字母。") do |u|
                    options[:upcase] = u
                end

        opts.on("-l",
                "--length [LENGTH]",
                Integer,
                "密码的长度。默认值为10个字符。") do |l|
                    options[:length] = l
                end
    end

    opts.parse!
    options
结尾

类PasswordGenerator
    @@options = { :numb  => ('0'..'9').to_a,
                  :punct    => %w(. , ! ? @ & :),
                  :upcase   => ('A'..'Z').to_a }

    def initialize(length, *opts)
        @possible = *('a'..'z')
        @length = length

       parse_content_options..(opts)
    end

   defparse_content_options...(opts)
       选择。家{| OPT | @可能.Concat.(@@options[opt])如果@@选项.Key?选择}
    end

    def generate
        ([email protected]).inject(""){| Passwd,E |隘口<<@可能.Random_Choice}
    end

    private :parse_content_options.
结尾
       
选项= parse_options.(ARGV)
赞助
赞助
 赞助
 赞助
WTD.




 邮政 发布: 星期五2006年6月16日7:06  帖子主题:(没有主题)

优秀的。

代码:
类阵列
    def random_choice
        self[rand length]
    end
结尾


 眨眼
空值




 邮政 发布: 星期五2006年6月16日上午10:14  帖子主题:(没有主题)

仍然不像写作一样乐趣
代码:

3.因素


 眨眼
WTD.




 邮政 发布: 星期五2006年6月16日上午10:19  帖子主题:(没有主题)

确实。
空值




 邮政 发布: 2006年6月17日星期六晚上9:20  帖子主题:(没有主题)

!!!

我刚才意识到我发布的代码不起作用。不知何故,最后一条线没有包括在内!

这是正确的版本:

代码:

#!/ / usr / bin / env Ruby

#pgen.rb.
#于2006年6月15日星期四的Jesse H-K

要求'OptParse'

类阵列
    def random_choice
        self[rand(self.length)]
    end
结尾

def parse_options.(args)
    options = {}
 
    options[:length] = 10

   选择= optionparser.new do | OPTS |
        opts.banner = "Usage: pgen.rb [options]"

        opts.on("-n",
                "--numbers",
                "在密码中包含数字[0-9]。") do |n|
                    options[:numb] = n
                end
       
        opts.on("-p",
                "--punctuation",
                "在密码中包含常用标点字符。") do |p|
                    options[:punct] = p
                end
       
        opts.on("-u",
                "--uppercase",
                "在密码中包含大写字母。") do |u|
                    options[:upcase] = u
                end

        opts.on("-l [LENGTH]",
                "--length [LENGTH]",
                Integer,
                "密码的长度。默认值为10个字符。") do |l|
                    options[:length] = l
                end
    end

    opts.parse!
    options
结尾

类PasswordGenerator
    @@options = { :numb     => ('0'..'9').to_a,
                  :punct    => %w(. , ! ? @ & :),
                  :upcase   => ('A'..'Z').to_a }

    def initialize(length, *opts)
        @possible = *('a'..'z')
        @length = length

       parse_content_options..(opts)
    end

   defparse_content_options...(opts)
       选择。家{| OPT | @可能.Concat.(@@options[opt])如果@@选项.Key?选择}
    end

    def generate
        ([email protected]).inject(""){| Passwd,E |隘口<<@可能.Random_Choice}
    end

    private :parse_content_options.
结尾
       
选项= parse_options.(ARGV)
将passwordgenerator。新闻(options[:长度],*选项.keys).generate


对于那个很抱歉。  伤心
cow




 邮政 发布: 2019年2月18日星期一2:33 AM  发布主题:Re:使用OptParse的密码生成器

我不明白这个代码。
从上一个显示帖子:   
    指数 -> 编程,Ruby. -> 红宝石提交
查看上一个主题 告诉一个朋友可打印的版本下载主题 利率主题 订阅本主题私人信息刷新页面 查看下一个主题

11  [ 6 Posts ]
跳到:    


Style:  
搜索: