1. 使用命令 pwgen 来生成一个长度为 10 个字符的独特的随机密码。假如你还没有安装 pwgen,请使用 Apt 或 YUM 等包管理器来安装它。
$ pwgen 101
生成一个独特的随机密码
一口气生成若干组长度为 50 个字符的唯一的随机密码!
$ pwgen 50
生成多组随机密码
2. 你还可以使用 makepasswd 来每次生成一个给定长度的独特的随机密码。在你把玩 makepasswd 命令之前,请确保你已经安装了它。如若没有安装它,试试使用 Apt 或 YUM 包管理器来安装 makepasswd这个软件包。
生成一个长度为 10 个字符的随机密码。该命令产生的密码的长度默认为 10。
$ makepasswd
使用 makepasswd 生成独特的密码
生成一个长度为 50 个字符的随机密码。
$ makepasswd --char50
生成长度为 50 的密码
生成 7 个长度为 20 个字符的随机密码。
$ makepasswd --char20--count 7
3. 使用带“盐”的 Crypt(注:这里应该指的是一个函数,可以参考这里 ) 来加密一个密码。提供手动或自动添加 “盐”。
对于那些不清楚 盐 的意义的人,这里的 “盐” 指的是一个随机数据,它作为密码生成函数的一个额外的输入, 目的是保护密码免受词典攻击。
在执行下面的操作前,请确保你已经安装了 mkpasswd。
下面的命令将带 “盐” 加密一个密码。“盐” 的值是随机自动生成的。所以每次你运行下面的命令时,都将产生不同的输出,因为它每次接受了随机取值的 “盐”。
$ mkpasswd tecmint
使用 Crypt 来加密密码
现在让我们来手动定义 “盐” 的值。每次它将产生相同的结果。请注意你可以输入任何你想输入的值来作为 “盐” 的值。
$ mkpasswd tecmint -s tt
带“盐”加密密码
另外, mkpasswd 还是交互式的,假如你在命令中没有提供密码,它将主动询问你来输入密码。
4. 使用 aes-256-cbc 加密算法并使用带“盐”的密码(如 “tecmint”) 加密一个字符串(如 “Tecmint-is-a-Linux-Community”)。
# echo Tecmint-is-a-Linux-Community | openssl enc -aes-256-cbc -a -salt -pass pass:tecmint
在 Linux 中加密一个字符串
在上面例子中, echo 命令的输出通过管道传递给了 openssl 命令,使得该输出通过加密编码方式(enc:Encoding with Cipher ) 所加密,这个过程中使用了 aes-256-cbc 加密算法,并附带了密码 (tecmint) 和 “盐” 。
5. 使用 openssl 命令的 -aes-256-cbc 解密选项来解密上面的字符串。
# echo U2FsdGVkX18Zgoc+/Z | openssl enc -aes-256-cbc -a -d -salt -pass pass:tecmint
在 Linux 中解密字符串
现在就是这些内容了。
Ⅱ 如何在Linux系统中生成、加密和解密随机密码
在Linux系统中,生成、加密和解密随机密码是一个重要的安全实践。本文将介绍如何使用命令行工具轻松完成这些任务。
首先,我们关注随机密码生成。PWgen是一个强大工具,通过命令行可自定义密码长度、复杂度和字符类型,生成随机唯一密码。例如,要生成10个字符的密码,只需在终端输入"pwgen 10"即可。
另一方面,makepasswd命令同样用于生成随机密码,但提供更灵活的长度选项。要生成长度为50的密码,使用"makepasswd 50"命令。
密码加密环节中,crypt库和salt方法提供了额外的安全层。salt是随机数据,用于防止字典攻击。mkpasswd命令是用于加密密码的工具,它生成与特定salt关联的哈希值。例如,使用"mkpasswd tecmint"命令加密"tecmint"密码。
对于密码哈希存储和验证,SHA-512是常用选择。要生成SHA-512哈希,输入"mkpasswd -m sha512 tecmint"。
在Linux中加密字符串时,使用aes-256-cbc算法和salt进行加密,确保数据传输安全。使用openssl命令实现,例如加密字符串" idccoupon-is-a-Linux-Community "。
解密加密的字符串,同样使用openssl,指定解密算法和密码。如需要解密加密字符串,请使用相应的命令,替换哈希值。
总之,Linux提供丰富的工具支持密码管理,从生成到加密,确保数据安全。希望这些技巧能帮助您在日常工作中更安全地使用密码。如有其他建议或技巧,欢迎分享,让我们共同提升安全实践。
Ⅲ Linux的密码是什么算法加密的
数字和所使用的加密算法对应关系:
1: MD5 ,(22位)
2a: Blowfish, 只在有一部分linux分支中使用的加密方法
5: SHA-256 (43位)
6: SHA-512 (86位)
后面两种加密算法只在glibc2.7版本之后才支持。
Ⅳ shadow文件是用什么算法加密的
Linux中的密码用两种加密算法加密:DES和MD5,查看你的/etc/shadow文件,
密码栏以$1$开头的是用MD5算法加密的。而用 chpasswd生成的用户密码是用
DES算法加密的,它的有效位只有前八位,而MD5则无此限制。
Ⅳ Linux命令行生成随机密码的方法有哪些
生成一个随机密码
对于下面的任何一种方法,你可以通过简单的修改来生成特定长度的密码,或者只使用其输出结果的前N位。希望你正在使用一些类似于LastPass的密码管理器,这样你就不用自己记住这些随机生成的密码了。
1. 这种方法使用SHA算法来加密日期,并输出结果的前32个字符:
Shell
1
date +%s | sha256sum | base64 | head -c 32 ; echo
2. 这种方法使用内嵌的/dev/urandom,并过滤掉那些日常不怎么使用的字符。这里也只输出结果的前32个字符:
Shell
1
< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;
3. 这种方法使用openssl的随机函数。如果你的系统也许没有安装openssl,你可以尝试其它九种方法或自己安装openssl。
Shell
1
openssl rand -base64 32
4. 这种方法类似于之前的urandom,但它是反向工作的。Bash的功能是非常强大的!
1
tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1
5. 这种方法使用string命令,它从一个文件中输出可打印的字符串:
Shell
1
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
6. 这是使用urandom的一个更简单的版本:
Shell
1
< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6
7. 这种方法使用非常有用的dd命令:
Shell
1
dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
8. 你甚至可以生成一个只用左手便可以输入的密码:
Shell
1
</dev/urandom tr -dc '12345!@#$%' | head -c8; echo ""
9. 如果每次都使用上述某种方法,那更好的办法是将它保存为函数。如果这样做了,那么在首次运行命令之后,你便可以在任何时间只使用randpw就可以生成随机密码。或许你可以把它保存到你的~/.bashrc文件里面。
Shell
1
randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}
10. 最后这种生成随机密码的方法是最简单的。它同样也可以在安装了Cygwin的Windows下面运行。在Mac OS X下或许也可以运行。我敢肯定会有人抱怨这种方法生成的密码没有其它方法来的随机。但实际上如果你使用它生成的全部字符串作为密码,那这个密码就足够随机了。
Shell
1
date | md5sum
是的,这种方法也极其好记。