你如何生成密码?

35

你如何生成密码?

  • 随机字符?
  • 口令短语?
  • 高ASCII码?

类似这样的方法?

cat /dev/urandom | strings

使用密码管理器...在The Hacker News上检查几个。 - user3058304
将该命令放入文件夹中的bash文件中,并将该文件夹添加到路径中。 - ooransoy
43个回答

97

Mac OS X的"钥匙串访问"应用程序可让您访问OS X优秀的密码生成器。按Command-N并单击键图标。您可以选择密码风格(易记,数字,字母数字,随机,FIPS-181)并选择长度。 它还会警告您有关弱密码的问题。


25

使用此功能并点赞 :)

cat /dev/urandom | tr -dc 'a-zA-Z0-9-!@#$%^&*()_+~' | fold -w 10 | head -n 1

将人数更改为生成密码的数量。


2
另一种写法:tr -dc '[:alnum:][:punct:]' < /dev/urandom | head -c 32 - Hugo Ideler
3
为什么要使用 fold | head 而不是 head -c - Ciro Santilli OurBigBook.com

12

从Python Cookbook中提取的用于生成密码的简短Python脚本。

#!/usr/bin/env python

from random import choice
import getopt
import string
import sys

def GenPasswd():
    chars = string.letters + string.digits
    for i in range(8):
        newpasswd = newpasswd + choice(chars)
    return newpasswd

def GenPasswd2(length=8, chars=string.letters + string.digits):
    return ''.join([choice(chars) for i in range(length)])

class Options(object):
    pass

def main(argv):
    (optionList,args) = getopt.getopt(argv[1:],"r:l:",["repeat=","length="])

    options = Options()
    options.repeat = 1
    options.length = 8
    for (key,value) in optionList:
        if key == "-r" or key == "--repeat":
            options.repeat = int(value)
        elif key == "-l" or key == "--length":
            options.length = int(value)

    for i in xrange(options.repeat):
        print GenPasswd2(options.length)

if __name__ == "__main__":
    sys.exit(main(sys.argv))

8

开源工具Keepass拥有出色的密码生成功能,包括增强的随机化。


6
我使用密码保险箱来生成和存储所有密码,这样您就不必记住超强的密码(除非是解锁保险箱的密码)。

6
您的建议稍有改动:
head -c 32 /dev/random | base64

可选地,您可以删除结尾的=并使用echo获取新行:

echo $(head -c 32 /dev/random | base64 | head -c 32)

该算法可以生成更可预测长度的密码,同时也能确保只使用可打印字符。


5

标准的Unix实用程序称为 pwgen

在几乎所有类Unix发行版中都可以使用。


4

apg中的算法非常酷。但我大多数时候使用自己定义的字符列表中的随机字符。这些字符主要包括数字、大小写字母和一些标点符号。我已经排除了易于与其他字符混淆的字符,如“1”、“l”、“I”、“O”、“0”等。


删除字符只会破坏密码混淆的视觉效果。 - px.

4

我不喜欢随机字符密码,它们很难记住。

一般来说,我的密码分为几个级别,根据这些信息对我有多重要而定。

我的最安全的密码通常使用旧BBS生成的随机密码组合,当时我年轻愚蠢,不知道如何更改,并且记住了。将几个这样的密码加在一起,自由使用Shift键效果很好。如果我不使用这些密码,我发现短语密码更好。也许是我喜欢的某本书中的词语,再次混合大小写和特殊符号。通常我会使用一个以上的短语,或者从一个短语中连接几个单词,再与另一个短语连接几个单词。

在低优先级网站上,我的密码相当简短,通常是几个熟悉的标记的组合。

我遇到最大问题的地方是工作,我们需要每30天更改一次密码,不能重复使用密码。我只是像其他人一样,想出一个密码并在末尾添加一个逐渐增加的索引。这种密码规则太荒谬了。


4

对于网站,我使用SuperGenPass,它可以从主密码和域名中派生出特定于该网站的密码,使用哈希函数(基于MD5)。无需在任何地方存储该密码(SuperGenPass本身是一个书签小工具,完全在客户端运行),只需记住您的主密码即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接