你如何生成密码?
- 随机字符?
- 口令短语?
- 高ASCII码?
类似这样的方法?
cat /dev/urandom | strings
你如何生成密码?
类似这样的方法?
cat /dev/urandom | strings
Mac OS X的"钥匙串访问"应用程序可让您访问OS X优秀的密码生成器。按Command-N并单击键图标。您可以选择密码风格(易记,数字,字母数字,随机,FIPS-181)并选择长度。 它还会警告您有关弱密码的问题。
使用此功能并点赞 :)
cat /dev/urandom | tr -dc 'a-zA-Z0-9-!@#$%^&*()_+~' | fold -w 10 | head -n 1
将人数更改为生成密码的数量。
tr -dc '[:alnum:][:punct:]' < /dev/urandom | head -c 32
- Hugo Idelerfold | head
而不是 head -c
? - Ciro Santilli OurBigBook.com从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))
head -c 32 /dev/random | base64
可选地,您可以删除结尾的=
并使用echo
获取新行:
echo $(head -c 32 /dev/random | base64 | head -c 32)
该算法可以生成更可预测长度的密码,同时也能确保只使用可打印字符。
标准的Unix实用程序称为 pwgen
。
在几乎所有类Unix发行版中都可以使用。
apg中的算法非常酷。但我大多数时候使用自己定义的字符列表中的随机字符。这些字符主要包括数字、大小写字母和一些标点符号。我已经排除了易于与其他字符混淆的字符,如“1”、“l”、“I”、“O”、“0”等。
我不喜欢随机字符密码,它们很难记住。
一般来说,我的密码分为几个级别,根据这些信息对我有多重要而定。
我的最安全的密码通常使用旧BBS生成的随机密码组合,当时我年轻愚蠢,不知道如何更改,并且记住了。将几个这样的密码加在一起,自由使用Shift键效果很好。如果我不使用这些密码,我发现短语密码更好。也许是我喜欢的某本书中的词语,再次混合大小写和特殊符号。通常我会使用一个以上的短语,或者从一个短语中连接几个单词,再与另一个短语连接几个单词。
在低优先级网站上,我的密码相当简短,通常是几个熟悉的标记的组合。
我遇到最大问题的地方是工作,我们需要每30天更改一次密码,不能重复使用密码。我只是像其他人一样,想出一个密码并在末尾添加一个逐渐增加的索引。这种密码规则太荒谬了。
对于网站,我使用SuperGenPass,它可以从主密码和域名中派生出特定于该网站的密码,使用哈希函数(基于MD5)。无需在任何地方存储该密码(SuperGenPass本身是一个书签小工具,完全在客户端运行),只需记住您的主密码即可。