专栏首页linux百科小宇宙技术|在 Linux 终端下生成随机/强密码的五种方法
原创

技术|在 Linux 终端下生成随机/强密码的五种方法

最近我们在网站上发表过一篇关于检查密码复杂性/强度和评分的文章。它可以帮助你检查你的密码的强度和评分。

我们可以手工创建我们需要的密码。但如果你想要为多个用户或服务器生成密码,解决方案是什么呢?

是的,Linux中有许多可用的工具能满足这个需求。本文中我将会介绍五种最好的密码生成器。

这些工具可以为你生成高强度随机密码。如果你想要为多个用户和服务器更新密码,请继续读下去。

这些工具易于使用,这也是我喜欢用它们的原因。默认情况下它们会生成一个足够健壮的密码,你也可以通过使用其他可用的选项来生成一个超强的密码。

它会帮助你生成符合下列要求的超强密码。密码长度至少有12-15个字符,包括字母(大写及小写),数字及特殊符号。

工具如下:

pwgen:生成易于人类记忆并且尽可能安全的密码。openssl:是一个用来从shell中调用OpenSSL加密库提供的多种密码学函数的命令行工具。gpg:OpenPGP加密/签名工具。mkpasswd:生成新密码,可以选择直接设置给一名用户。makepasswd:使用/dev/urandom生成真随机密码,比起好记它更重视安全性。/dev/urandom文件:两个特殊的字符文件/dev/random和/dev/urandom(自Linux1.3.30起出现)提供了内核随机数生成器的接口。md5sum:是一个用来计算及校验128位MD5哈希的程序。sha256sum:被设计用来使用SHA-256算法(SHA-2系列,摘要长度为256位)校验数据完整性。sha1pass:生成一个SHA1密码哈希。在命令缺少盐值的情况下,将会生成一个随机的盐值向量。怎么用pwgen命令在linux下生成一个随机的强壮密码?pwgen程序生成易于人类记忆并且尽可能安全的密码。

易于人类记忆的密码永远都不会像完全随机的密码一样安全。

使用-s选项来生成完全随机,难于记忆的密码。由于我们记不住,这些密码应该只用于机器。

在Fedora系统中,使用DNF命令来安装pwgen。

$sudodnfinstallpwgen在Debian/Ubuntu系统中,使用APT-GET命令或APT命令来安装pwgen。

$sudoaptinstallpwgen在ArchLinux系统中,使用Pacman命令来安装pwgen。

$sudopacman-Spwgen在RHEL/CentOS系统中,使用YUM命令来安装pwgen。

$sudoyuminstallpwgen在openSUSELeap系统中,使用Zypper命令来安装pwgen。

$sudozypperinstallpwgen在Linux下如何使用pwgen命令?使用方法非常简单直接。使用下列示例中更适合你的那种。默认情况下,它会生成一个方便记忆的密码。

想要这样做,只要在你的终端中运行pwgen命令。将会一下生成160个密码以8列20行打印出来。

$pwgenameiK2ooaibi3ChaEPium0Ieaisoh1EeNidee9aeuNga0BeeuPh9ieM1ahn1ooNgoc5ooTeatai7eKidtae2yieShiecaiR8wohY2OhkUab2maedheC4aXohOb6NiesoShaeriu3uy9Juk5uhoht7DooFah6yah3faz9JeeweKiek4juas0XuoshEiwo4epooot8teeZUi1yoohiAechae7AOhdi2aelcae5ThohAu1aeTeiais0aiC2Cai2quinOox9ohz4neev0Cheahza8AQuAhz7eicameiBeeW0Av3bo7ahquoiTu3ftaeNg3aeAiko7AizSheiGh8EaesaeSh7haet6LooAeTel3oNAth7zeerIeYah4ieUG3oothaOhch9OchPhuap6suiel5Xu7sdiqui7BuieF2diereeluHa1uThagei0iCeeth3ohOCei1ahjzei2aiYoJahgh1iaooqu1Cejeez2aiPoWahd5soonoo7Mei9Hie5asheUith4Or2Xie3uh2bfuF9EilueiN2sha9zae2YaShoGh5ephiohvao4Aeaixu6aeMfo4Ierahiephei6Ahae9eeGaeiBeiY3gAic8Kee9he8AheChohM4bid9eemae3Zueesh2EiMcheiGa4jPooV2viiahpeeg5EaezauX2cXe7aethuAhvaph7aJoh2heecIi5EeShiaij7Uo8eooy2AhthmieKe2nieiQuu8fegiedaQu0eiPhob3Eoox1uo2Ueehia4Huga9Ahw0aohxuZei7eV4OoXioKid2wu1nku4Ahf5suigh8uQuAhWoh0povo1Eeb2uAhth7ve5ieje4eiLieci1AchMeephie9iephieY8Eesoom7ueakai2Bouo8IecheZai3aev5aGhahf0EWowoo5thOraeb0ahGah3nah0ieGhah0paeCh0OhJahQu2feZahQu0gahfoik7Ushcei1Wai1Aivi3ooYeephei5UMooZae3OquooRoh7aequae5Upae6CeiveizahF1kohmi7ETaahyaeK1NMohw2no8ooc8Oonecoo7IeveeePhei9hWeequ8eVVie4iezuneeMiim4ie6aiZohQueegh2Eshahwi3NInichie8Sid1aejimohj4Ko7lieDi0peZeemah6athuevu2Ephi4OhshpaiKeix1ooz1CephahV4yoreue2laePhfu1eThuiqui7aePhFahth1nuohk9puLoaiBeez0bNeengai5生成安全的随机密码,使用pwgen命令的-s选项。

$pwgen-sCU75lgZd7HzzKgtA2ktBJDpRF6XJVhBsUjAm3bNLzO7Dw7JJpxn8fUvpKa3lLilGywJX7iJlD9ajxb6N78c1HOg2g8vtWCraJp6pBGBwoYuev9VlgbA6gHV8G6XQoVO5uQN98IU450GgQfrXFrTsou2tYQorO4x6UGer8Yi2O7DB5nw11ax370UR1xVRPkA1RVaGDr2iNt11ekUd9Vm3D244ck8Lnpd0SjDt8uWn5ERT4tf84EONFzyYJc6T83jgWZa6bKPWH4HMo1YUbsDDRik3gBwV7LOW9H1QRQ4x3Ak7RcSeIJu2RBF9e508xrLCSzTrW191AslxDa6EIkWWov2biOb6EmTyqHt82OwG5ZFO7B5397zmjOPuA4KZuhYVuQpoJR4D0eKyOiUrRz96smeO3HTABu3N6W0VmElsuPsp5zpw8UD3VkMGYTct6Rd4VKo0cVmqE07ZX7j9kQSlvA69Nm3fpv3ixWvF2xMuyEfcw8uAoQGVX3l9grTzx7Xjs4GVEYtMuJl5sYMen3icRPiYED3Mup4Bk3M9KHI7IkxqoSM0dt2cxmMUyb2tUkut2Q9wGZQx8Rpo11s9I13siOHu7GV64Fjv3VONzD8iSCDfVD3FoiPTx2396BQakoiJXUEokiC4ybL7VGmLel2RfvWkzKc7CLcE3FqNBSyANjDWrvZ5KI3NSX4hVFyo6VPrh4q3XeqZFDYMoX6fuTU5ZzU36u4ob4EpwiYPt05nCZga66qhupzH6Z9yRuVcqbe8taQv11hq1xsY67a8EVo9GLXAFCaDLGb1bZyh0YN80nTKo0QyRRVUwn9tDuU8mwwvx96LWpCbtFLz3fBGdNb4gCKfn6VYcOiH1ep6QYFZx8kaJtrY56PDWuW61R0If4kV2XK0NLQK4XQqhyclIp08cn6cBnx9z2Bz7gjGlON7CJxLR1U4mqMwir3jovGXWu0zMfDjk5m84KwM9SANoz0fZ5eo5m8iRtcooP5BpLh0Z5kvwr1Wf34O2O43hXao1Sp8tKoG5VNIf13fuYvmBQQn8MD3bmFSf6MfZ4Y0o17UjT4wO1DGcz2clBESLr4B3qIYArKQRND68xnh4oIsnayiK2zGyWvQCV3vAFPlHSB8zfx5bnaLt5lFbenkF2dIeBr4C6RqDQMygKt28c9OZCi0tQKE0Ekdjh3Pox2vWOMI14XF4gwcnYA0L6tVrRN3leknlmwZNjz14ovmJAr7shPl9o5fFFsuNwj0F2eVkqGi7gw277RZnYE7gCLlJDn05S5N假设你想要生成5个14字符长的密码,方法如下:

$pwgen-s1457YxUwDyfxGVTYDem2NT6FceXjPfTu8jlrljbrclcTiIruIX3Xu0TFXRrX8M9cB6wKNot1e如果你真的想要生成20个超强随机密码,方法如下:

$pwgen-cnys1420mQ3EvfGfZ,5[B#zmj{i5|ZS){jgHt_8i7OqJ%N`~2443fa5iJ\W-L?]?Qs$ovz2vgQBR^'Ry0Az|J9p2+0t2oA/n7U_'|QRxEsX*%_(4./QCRJACr-,8yF9&eM[*!Xz1C'bw?tv50o8hfv-fK(VxwQGSq!qj?sD7Xmkb7^N#Zp\_Y2kr%!)~4*pwYs{bq]Hh&Y|4u-Q1!jS~8;]{$N#FPX1L2B{hI|01fcK.z?QTz"l~]JD_,W%5bp.E+i2D3;BQ}p+$In.a3,.D3VQ3~&i如何在Linux下使用openssl命令生成随机强密码?openssl是一个用来从shell中调用OpenSSL加密库提供的多种密码学函数的命令行工具。

像下面这样运行openssl命令可以生成一个14字符长的随机强密码。

$opensslrand-base6414WjzyDqdkWf3e53tJw/c如果你想要生成10个14字符长的随机强密码,将openssl命令与for循环结合起来使用。

$forpwin{1..10};doopensslrand-base6414;done6i0hgHDBi3ohZ9Mil8Igtn+y1bVFJFanpJqWaArYu+wy+0nwLf5lk7TBAxrdNGykIzxaKDiLF2BwcltejRkDPdFPC/zI0PgG6aroK6d4xVVYFTrZGsjJEnFoOk1+UTSx/wJrYTFxVjBmLx9aivXB3yxEoQtOLPwTuO8df7dIv9IktpBpCSQFOD+5kIIe7Y如何在Linux下使用gpg命令生成随机强密码?gpg是GnuPrivacyGuard(GnuPG)中的OpenPGP实现部分。它是一个提供OpenPGP标准的数字加密与签名服务的工具。gpg具有完整的密钥管理功能和其他完整OpenPGP实现应该具备的全部功能。

下面这样执行gpg命令来生成一个14字符长的随机强密码。

$gpg--gen-random--armor114or$gpg2--gen-random--armor114jq1mtY4gBa6gIuJrggM如果想要使用gpg生成10个14字符长的随机强密码,像下面这样使用for循环。

$forpwin{1..10};dogpg--gen-random--armor114;doneor$forpwin{1..10};dogpg2--gen-random--armor114;doneF5ZzLSUMet2kefG6Ssc8hh7BFNs8Qu0cnrvHrYB+PEt28CosR5xO05/sQm21bfx6UG1cBDzVGKcEwALosRXnBgmOC6+++xUTGpjT5xRxo/zFq/lNegggsKxVgpB/3aSOY15W4iUlezWxL626CPc9omTIpYb7xQwI1NTlM2rxaCgeJjhtA6oHhBrUpLY4fM如何在Linux下使用mkpasswd命令生成随机强密码?mkpasswd生成密码并可以自动将其为用户设置。不加任何参数的情况下,mkpasswd返回一个新的密码。它是expect软件包的一部分,所以想要使用mkpasswd命令,你需要安装expect软件包。

在Fedora系统中,使用DNF命令来安装mkpasswd。

$sudodnfinstallexpect在Debian/Ubuntu系统中,使用APT-GET命令或APT命令来安装mkpasswd。

$sudoaptinstallexpect在ArchLinux系统中,使用Pacman命令来安装mkpasswd。

$sudopacman-Sexpect在RHEL/CentOS系统中,使用YUM命令来安装mkpasswd。

$sudoyuminstallexpect在openSUSELeap系统中,使用Zypper命令来安装mkpasswd。

$sudozypperinstallexpect在终端中执行mkpasswd命令来生成一个随机密码。

$mkpasswd37_slQepD像下面这样执行mkpasswd命令可以生成一个14字符长的随机强密码。

$mkpasswd-l14W1qP1uvlhghgh像下面这样执行mkpasswd命令来生成一个14字符长,包含大小写字母、数字和特殊字符的随机强密码。

$mkpasswd-l14-d3-C3-s33aad!bMWG49"t,如果你想要生成10个14字符长的随机强密码(包括大小写字母、数字和特殊字符),使用for循环和mkpasswd命令。

$forpwin{1..10};domkpasswd-l14-d3-C3-s3;donezmSwP[q9;P1r6[E42zcvzM"i3%B\8}1#[emailprotected]0X:zB(mmU22?nj0sqqL44M}ko(O^43tQ(.6jG;ceRq-jB6cp3x1GZ$e$of?Rj9kb2N(1J9HCf,nn#gjO79^Tu9m56+Ev_Yso(如何在Linux下使用makepasswd命令生成随机强密码?makepasswd使用/dev/urandom生成真随机密码,与易于记忆相比它更注重安全性。它也可以加密命令行中给出的明文密码。

在终端中执行makepasswd命令来生成一个随机密码。

$makepasswdHdCJafVaN在终端中像下面这样执行makepasswd命令来生成14字符长的随机强密码。

$makepasswd--chars14HxJDv5quavrqmU像下面这样执行makepasswd来生成10个14字符长的随机强密码。

$makepasswd--chars14--count10TqmKVWnRGeoVNrmPV2P98hLRUsaiMhMXPwyzYi2RLodxMGgLmoFpYivi8p0G7JvJjd6qUP7SmX95MiJcQauVKWzrh5npAjvNmLoHPKdq1uA9tU85V1su9GjU2oIGiQM2TMCEoahzLNYC如何在Linux系统中使用多个命令生成随机强密码?如果你还在寻找其他的方案,下面的工具也可以用来在Linux中生成随机密码。

使用md5sum:它是一个用来计算及校验128位MD5哈希的程序。

$date|md5sum9baf96fb6e8cbd99601d97a5c3acc2c4-使用/dev/urandom:两个特殊的字符文件/dev/random和/dev/urandom(自Linux1.3.30起出现)提供了内核随机数生成器的接口。/dev/random的主设备号为1,次设备号为8。/dev/urandom主设备号为1,次设备号为9。

$cat/dev/urandom|tr-dc'a-zA-Z0-9'|head-c1415LQB9J84Btnzz使用sha256sum:它被设计用来使用SHA-256算法(SHA-2系列,摘要长度为256位)校验数据完整性。

$date|sha256suma114ae5c458ae0d366e1b673d558d921bb937e568d9329b525cf32290478826a-使用sha1pass:它生成一个SHA1密码哈希。在命令缺少盐值的情况下,将会生成一个随机的盐值向量。

$sha1pass$4$9+JvykOv$e7U0jMJL2yBOL+RVa2Eke8SETEo$

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用Linux命令行生成随机密码的十种方法

    Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它。例如,你可以通过数十种方法来生成随机密码。本文将介绍生成随机密码的十种方法。 ...

    小小科
  • 你的服务器,真的还好吗?

    人们常认为,由于服务器在数据中心锁起来,又由于数据在持续使用,因此不需要加密服务器驱动器,因为数据永远不处于静止状态。

    养码场
  • 常见黑客渗透测试工具

    java404
  • 一张图来看看.NETCore和前后端技术的演进之路

    2019年3月10日,在长沙.NET 技术社区组织的技术沙龙《.NET Core和前后端分离那些事儿》上,我们曾经试图通过一系列抽丝剥茧的过程来引导大家在这条基...

    心莱科技雪雁
  • linux运维

    对于 web 服务,不管是上新,还是平时产品运营,节假日活动等,在这之前都需要评估现网压力承受能力,提前进行扩容,并做到防患于未然。所以对网站性能压力测试是必不...

    py3study
  • 如何抵御MFA验证攻击

    事实证明,多因素验证(MFA)对保护用户凭据至关重要,许多公司正在采用MFA来确保访问者对其IT环境的安全访问。因此,有些攻击者可能就会设计破解和规避MFA的技...

    用户8028881
  • 一张图来看看.NETCore和前后端技术的演进之路

    2019年3月10日,在长沙.NET 技术社区组织的技术沙龙《.NET Core和前后端分离那些事儿》上,我们曾经试图通过一系列抽丝剥茧的过程来引导大家在这条基...

    Edison.Ma
  • 信安之路从零到一

    俗话说:未知攻 焉知防,随着网络安全事件不断的发生,就在 2017 年 5 月 12 日起,全球范围内爆发的基于 Windows 网络共享协议进行攻击传播的蠕虫...

    信安之路
  • 如何踏入信安之路

    俗话说:未知攻 焉知防,随着网络安全事件不断的发生,就在 2017 年 5 月 12 日起,全球范围内爆发的基于 Windows 网络共享协议进行攻击传播的蠕虫...

    C4rpeDime
  • IBM发布未来五年五大科技预测

    如果说预测几十年后的科技发展对世界带来的改变太过遥远,那么未来 5年内可以预见的技术可就是近在眼前了。今天,在顶级科技盛会 Think 2018 中,IBM 发...

    钱塘数据
  • PHP之AES加密算法

    1) 确保都使用MCRYPT_MODE_CBC; 2) 确保明文填充都使用的是Pkcs5; 3) 加密key在AES_128长度必须是16, 24, 或者 32...

    php007
  • 物联网终端应用TEE的一些思考

    近年来,可信执行的概念在物联网安全领域也逐渐流传。可信执行环境(TEE,Trusted Execution Environment)在智能手机中的应用非常广泛,...

    绿盟科技研究通讯
  • 产业安全专家谈 | 面对恶意攻击,主机安全如何构建云端防御屏障?

    随着云计算的普及,云主机因强劲的性能、较低的成本成为大量传统企业上云和新兴业务快速扩张过程中的主流选择。

    腾讯安全
  • 乐视 Java 后台工程师,一面,二面,HR面

    牛客网
  • 运维工程师必备Linux常见安全策略与实践

    操作系统的安全问题是信息安全领域最重要和最基本的问题之一。随着近几年国内互联网技术和行业的迅猛发展,采用Linux网络操作系统作为服务器的用户也越来越多。Lin...

    小小科
  • 等保测评2.0:Windows身份鉴别

    本篇文章主要说一说windows系统中身份鉴别控制点中相关测评项的相关内容和理解,a、b测评项都比较基础和简单(但很繁琐),而c、d测评项则涉及到一点点密码方面...

    FB客服
  • 改变世界的6大计算机实验室

    这儿我们将列出6大孕育数字时代的计算机实验室,正是它们不断地为计算机的发展事业添砖加瓦、保驾护航,才使得我们如今能够如此舒适得享受到这便捷的数字世界。

    FPGA技术江湖
  • 10分钟就能搭建远程开发环境?你早点怎么不出现(#`n´)!

    疫情严重的日子里,人们对远程办公的渴望达到了巅峰。但在经历了多次试错与崩溃后,才发现能有一款与自己合拍的远程编程工具是多么的重要啊!

    博文视点Broadview
  • 一个人的武林:内网渗透测试思路(二)

    写在前面 跟web渗透(上一篇)不同,内网渗透需要更多的随机性和突破口,情况较为复杂,遇到障碍,有时可以换种思路突破,很多时候则无奈的只能止步于此。下面分享一些...

    FB客服

扫码关注云+社区

领取腾讯云代金券