生成具有指定字符集、模式或长度的加密安全随机密码。

pwgen-secure的Python项目详细描述


pwgen_secure-安全的python随机密码生成器

生成具有指定字符集、模式或长度的加密安全随机密码。

快速启动:如何设置密码?

安装

pwgen_secure需要上面的python 3.6,因为它使用secrets模块来加密安全的随机数。 ("加密安全"是一个相对的术语。请阅读下面的"安全"部分。

如果您没有python 3.6,可以从python.org下载并安装它。

安装脚本

为了您的复制/粘贴乐趣。

sudo su
cd /usr/src/
git clone https://github.com/mjmunger/pwgen_secure
cd pwgen_secure
chmod +x ./install.sh
./install.sh
exit

用法

usage: spwgen [ -v ... ] [options] <class> [<class-option>] 

示例

这是给你的例子,不耐烦船长…

网站的随机密码,并显示时间

spwgen slut 16

随机MAC地址:

spwgen p 'h{2}:h{2}:h{2}:h{2}:h{2}:h{2}' 

…或者使用魔法类

spwgen mac

随机三字密码短语:

spwgen w 3

创建谷歌风格的密码:

spwgen google

在手机上创建一款功能强大且易于操作的手机

spwgen iphone

spwgen android

退出h,以h开头
sudo su
cd /usr/src/
git clone https://github.com/mjmunger/pwgen_secure
cd pwgen_secure
chmod +x ./install.sh
./install.sh
exit
0

完全使用

sudo su
cd /usr/src/
git clone https://github.com/mjmunger/pwgen_secure
cd pwgen_secure
chmod +x ./install.sh
./install.sh
exit
1 为什么?

我们编写spwgen有很多原因,但主要原因是:我们需要一个灵活的密码生成器,它将使用最好的可用熵源。

默认情况下是安全的

默认情况下,pwgen创建的密码很容易让人记住。必须使用-s选项才能确保安全 密码。pwgen_secure默认情况下生成安全密码。因为用户很少使用rtfm,而且通常使用 默认设置。

灵活

pwgen不灵活。要生成随机MAC地址吗?不行。需要其他样式吗?不能。 pwgen_securecan.

使用机密模块

Secrets模块会自动使用系统中可用的最佳随机性源,从而为我们提供最佳的 冒险和制作安全密码。(请参阅下面的"加密安全"。

支持和问题

有关支持、问题和问题,请在github上提交问题

安全性

有多安全?

"加密安全"是一个相对的术语。Secrets模块实际上"…提供对操作系统提供的最安全的随机性源的访问"。因此,如果你的计算机上没有一个好的随机源,你就不会得到好的安全号码。这完全取决于您的芯片组是否有trng

密码强度分析

密码强度是一个有些模糊的术语。我们希望它的意思是:"这个密码很难破解",然而现实是,破解密码有很多方法。此程序执行的强度分析是一个搜索空间计算,与当前的开裂能力进行比较。

如何计算搜索空间

命令spwgen.py-a strong生成如下密码:sswltcnwo0parjy7。这将在48453916488902607769120106730(4.8 x 10^28)可能性中创建1个匹配的可能搜索空间。现在,我们有1/2的机会找到密码,我们搜索一半的搜索空间,因此,这将搜索空间减少到(2.4 x 10^28),这仍然是巨大的。现在,给定当前的破解能力,我们可以每秒尝试10000000000000次,我们可以将可能的组合(2.4 x 10^28)除以1 x 10^14。这将为我们提供搜索50%密码所需的总秒数'搜索空间。

我们所说的"裂纹"

就本计算器而言,在搜索完50%的搜索空间后,密码被视为已被"破解"。

如何计算"强度"

考虑到当前的破解技术,密码的强度取决于用户在暴力破解密码之前死亡的可能性。目标是拥有一个需要100多年才能破解的密码。这样,一个人就可以在其一生中使用给定的密码保护其数据。当然,随着散列和破解技术的增加,我们用来计算这种强度的速度需要更新。

因此,强度显示为:

这个不能保证您的密码是强的,但它对大多数应用程序都是非常好的。此外,如果你的计算机上有一个很差的熵源,这些计算几乎毫无意义。如果你真的对拥有优秀的、高质量的、安全的密码感兴趣,请确保你的电脑有一个芯片组,可以用trng产生真正的随机数,或者用prng产生伪随机数。有关详细讨论,请参阅:英特尔的《随机数生成器实施指南》

特定于发行版的安装信息

python 3.6的debian特定安装。

Debian Stretch在存储库包中还没有Python3.6,因此,您可以从头开始编译:

准备系统:

sudo su
cd /usr/src/
git clone https://github.com/mjmunger/pwgen_secure
cd pwgen_secure
chmod +x ./install.sh
./install.sh
exit
2

下载python 3.6for linux,解压缩到/usr/src/,然后:

sudo su
cd /usr/src/
git clone https://github.com/mjmunger/pwgen_secure
cd pwgen_secure
chmod +x ./install.sh
./install.sh
exit
3

从v3.6开始,secrets是核心库的一部分,因此无需安装其他内容。

参考文献

来源和贡献

  • 基于keepass密码生成器的模式函数
  • words.txt的mmap用法基于
  • 英文单词列表由dwyl/englishwords提供

致谢

感谢您对Linux项目的各种贡献,包括theodore-ts'opwgene2fsprogs,和ext4文件系统,我们每天都在使用。西奥多·西奥多很快就有资格写下最初的pwgen,这个项目希望能跟上它的步伐。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JOOQ“IN”查询引发空指针异常   在Java中将文本文件读入HashMap   Java慢速socket。连接()   java您可以指定网页的大小,以便排除评论部分吗?   java使用WebViewActivity。kotlin中的额外URL   java检索保存到数据库中的pdf文件,以便在pdfbox中进行操作。Springbot和hibernate应用程序   通过java录制获得巨大回声的音频   java Oracle如何正确执行事务?   如何在OpenAPI 3.0 Java generator中生成具有附加属性的对象体请求   java无法解析符号“ImageReference”   java泛化类的ArrayList之间的搜索方法   多线程可能会影响Java对象。等会被打断吗?   安卓 Java设置alarmmanager的时间间隔,并在特定时间停止   java“数组索引超出范围异常6”   java行业标准布局管理器   循环我的Java代码不会产生下一波吗?   java JavaFx复制超链接