V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

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

  •  1
     
  •   selfAccomplish · 29 天前 · 465 次点击
    [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
        1
    ysc3839   28 天前 via Android
    搜索 Markdown 语法
        2
    ipwx   28 天前   ♥ 1
    我觉得你这个产生随机密码的逻辑有点古怪。它的组合数是 95!/(n-95)! 而不是 n^95。

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

    import random, string; ''.join(random.choices(string.printable, k=120))
        3
    xsd3169   27 天前   ♥ 1
    如果是我的话我会使用 openssl 来加盐加密一些信息将结果截取部分来做密码,更通用有效
        4
    selfAccomplish   27 天前
    @xsd3169 没想到这个,对于萌新来说稍微复杂了点,但是学到了不错的思路,感谢!
        5
    selfAccomplish   27 天前
    @ipwx 精辟精辟,就崇拜一行代码搞定的。感觉自己不补补数学知识没法好好探讨这个问题了哈哈
        6
    selfAccomplish   27 天前
    @ysc3839 谢谢,文章只能补充没法编辑了啊。
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1184 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 36ms · UTC 16:53 · PVG 00:53 · LAX 08:53 · JFK 11:53
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1