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

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为扫描器的输入生成字符序列   hibernate中的java实体合并   如何使变量在Java文件中成为全局变量   java JVM崩溃“异常访问冲突”   向MediaMetadataRetriever中的setDataSource()发送Uri时发生java IllegalArgumentException   java没有节约协议?   用户界面java gui帮助actionlistener   java索引越界异常,即使大小小于索引?   在C++中使用java的困惑   在普通java编码中插入图像   JDBC上的java缓存数据   在Java中,在字符串的特定位置替换子字符串   java在运行elasticsearch集群时遇到Perm Gen空间问题   java Soap故障跟踪   java拆分器。固定长度(int)。拆分(字符串)   java获取jar内部包的路径