V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
selfAccomplish
V2EX  ›  Python

萌新写的 Python 生成密码微脚本,有个疑问请教各位大佬

  •  1
     
  •   selfAccomplish · 2017-11-17 22:51:38 +08:00 · 1973 次点击
    这是一个创建于 2589 天前的主题,其中的信息可能已经有所发展或是发生改变。
    [code]
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    # @Date : 2017-4-1

    import sys
    import random
    from optparse import OptionParser

    if __name__ == "__main__":
    op_parser = OptionParser()
    # -l 参数后面加数字,表示密码长度,默认为 12
    op_parser.add_option("-l", "--length", action="store", dest="leng", default=12,
    help="Password length,default is 12.")
    op_parser.set_description(u'说明:使用 python random_pass.py -l n 产生 n 位随机密码, 0<n<95')
    (options, args) = op_parser.parse_args()
    length = int(options.leng)
    length = (length if 0 < length < 95 else exit(0))
    basechars = """!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"""
    basechars = list(basechars)
    random.shuffle(basechars)
    print ''.join(basechars[:length])
    [/code]

    想请教下各位大佬,optparse 的 description 怎么换行呢,加换行符也不行。
    话说还是不太会用这个编辑器,我以为加[code]标签会有代码格式的。。
    6 条回复    2017-11-19 21:11:51 +08:00
    ysc3839
        1
    ysc3839  
       2017-11-18 09:26:21 +08:00 via Android
    搜索 Markdown 语法
    ipwx
        2
    ipwx  
       2017-11-18 11:26:48 +08:00   ❤️ 1
    我觉得你这个产生随机密码的逻辑有点古怪。它的组合数是 95!/(n-95)! 而不是 n^95。

    你可以用这个,比如产生 120 长度的密码:

    import random, string; ''.join(random.choices(string.printable, k=120))
    xsd3169
        3
    xsd3169  
       2017-11-19 12:13:47 +08:00   ❤️ 1
    如果是我的话我会使用 openssl 来加盐加密一些信息将结果截取部分来做密码,更通用有效
    selfAccomplish
        4
    selfAccomplish  
    OP
       2017-11-19 21:07:06 +08:00
    @xsd3169 没想到这个,对于萌新来说稍微复杂了点,但是学到了不错的思路,感谢!
    selfAccomplish
        5
    selfAccomplish  
    OP
       2017-11-19 21:11:05 +08:00
    @ipwx 精辟精辟,就崇拜一行代码搞定的。感觉自己不补补数学知识没法好好探讨这个问题了哈哈
    selfAccomplish
        6
    selfAccomplish  
    OP
       2017-11-19 21:11:51 +08:00
    @ysc3839 谢谢,文章只能补充没法编辑了啊。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2761 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:15 · PVG 22:15 · LAX 06:15 · JFK 09:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.