$ 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+dfAdpIK58JbcEYFdJBPMINU91DKPeVVrU2k9oXWsgpvpdO/Z | openssl enc -aes-256-cbc -a -d -salt -pass pass:tecmint
在 Linux 中解密字符串
现在就是这些内容了。
我们可以用mkpasswd命令:这个命令就是用来生成crypt格式的密码的:mkpasswd
输入命令后,程序会要求输入一个密码,然后生成crypt格式的字符串。
如果用Apache
Web服务器,那么也可以用htpasswd:
htpasswd
-nd
user
用户名(user)叫什么都无所谓,我们关注的是密码。这个命令会输出一个user:password格式的字符串,直接把password字段复制下来就ok了。
有OpenSSL的话,可以使用openssl命令:
openssl
passwd
-crypt
myPassword
把上面命令中的myPassword用你想用的密码字符串代替。
其他还有一些需要把命令在命令行中直接输入的方式,不过这种做法有个问题,就是在ps命令中可以看到密码,同时密码也会被记录入shell历史。
不过这个问题是有解决办法的:用脚本,或者语言解释器。
比如使用Perl:
perl
-e
crypt('password','sa')"
Perl需要一个加密盐,如这里使用了sa(salt指加密中用到的随机字符串,用不同的salt可以生成不同的加密结果)。
Ruby也一样需要加密盐:
ruby
-e
"password".crypt("JU")
print("n")'
PHP也可以:
php
-r
"print(crypt('password','JU')
.
"n")"
需要注意的是,如果不使用加密盐(如上面命令中的JU),那么输出的字符串将不是crypt加密格式,而是MD5加密格式的。所以,加密盐其实是必须的参数。
Python需要导入crypt库并使用加密盐:
python
-c
'import
crypt
crypt.crypt("password","Fx")'
这里的加密盐是Fx。
数据库也可以生成crypt密码。比如用MySQL:
echo
"select
encrypt('password')"
|
mysql
另外,Tcl,Ubuntu下的trf,还有Lua的lua-crypt插件也可以实现相同的目的。
欢迎补充其他的方式!
ls 指令是Linux下最常用的指令之一。
ls 命令将每个由 Directory 参数指定的目录或者每个由 File 参数指定的名称写到标准输出,以及您所要求的和标志一起的其它信息。
如果不指定 File 或 Directory 参数, ls 命令显示当前目录的内容。
基本介绍中文名 :ls 类属 :指令 所属领域 :计算机 套用范围 :linux 指令释义,描述,许可权表示,标志,注意事项, 指令释义 ls 指令可以说是Linux下最常用的指令之一。它有许多的选项,下面列出了 ls 指令的绝大多数选项。 List information about the FILEs (the current directory by default).Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. 用法:ls [选项]... [档案]... 运用举例:1.列出具体档案 #ls -al 这个最常用,可是往往又不彻底符合要求,
2.列出一切子目录的档案:#ls -R 上个指令仅仅列出了本目录下的一切目录和档案,可是目录下的档案不会循环的列出。
3.若是档案过多一屏看不完,怎么办?并且,关于想找到许多档案中的某个档案的姓名。
3.1分屏显现:#ls -l|more 能在当时屏退出,很有用,但不能一页一页翻屏
#ls -l|less 能用pgup,pgdw 翻页,但不能在当时方位退出
3.2横向输出尽可能多的显现档案姓名: #ls -m
-a 列出目录下的一切档案,包含以 . 最初的隐含档案。常用
-m 横向输出档案名称,并以“,”作分格符。
-c 输出档案的 i 节点的修正时刻,并以此排序。
-R 列出一切子目录下的档案。
-l 列出档案的具体信息。
-s 在每个档案名称后输出该档案的巨细。
-k 以 k 位元组的方式表明档案的巨细。
-i 输出档案的 i 节点的索引信息。
2.只显现目录:#ls -l |grep ^d 3.只显现非目录档案:#ls -l |grep ^[^d]
3.对输出档案进行各种排序;
3.1 依照字元序(default): #ls -l
3.2 依照修正时刻排序: #ls -t 近来修正在最上面
3.3 逆排序 : #ls -r
3.4 按档案巨细排序 :#ls -S 大档案的在上
3.5 依照档案扩展名(最终一个.后的字元)排序: #ls -X
3.6 按数字排序 :#ls -lv
-t 以时刻排序。
-r 对目录反向排序
-f -U 对输出的档案不排序。
-X 以档案的扩展名(最终一个 . 后的字元)排序。
-S 以档案巨细排序。
-u 以档案前次被拜访的时刻排序。
-n 用数字的 UID,GID 替代称号。
-o 显现档案的除组信息外的具体信息。
-p -F 在每个档案名称后附上一个字元以阐明该档案的类型,“*”表明可执行的一般
档案;“/”表明目录;“@”表明符号连线;“|”表明FIFOs;“=”表明套接字(sockets)。
-q 用?替代不行输出的字元。
-x 按列输出,横向排序。
暂时无用选项:
-b 把档案名称中不可输出的字元用反斜杠加字元编号(就象在C言语里相同)的方式列出。不常用
-d 将目录象档案相同显现,而不是显现其下的档案。
-e 输出时刻的悉数信息,而不是输出简略信息。 没用
-g 无用。
-A 显现除 “.”和“..”外的一切档案。
-B 不输出以 “~”结束的备份档案。
-C 按列输出,纵向排序。
-G 输出档案的组的信息。
-L 列出连线档案名称而不是连线到的档案。
-N 不约束档案长度。
-Q 把输出的档案名称用双引号括起来。
-1 一行只输出一个档案。
--color=no 不显现五颜六色档案名称
--help 在规范输出上显现协助信息。
--version 在规范输出上输出版别信息并退出 描述 ls 命令将每个由 Directory 参数指定的目录或者每个由 File 参数指定的名称写到标准输出,以及您所要求的和标志一起的其它信息。如果不指定 File 或 Directory 参数, ls 命令显示当前目录的内容。 在互斥对中指定多个选项不看成错误。每对中最后一个指定的选项确定输出格式。 预设情况下,ls 命令按照档案名称的字母顺序显示所有信息。整理顺序由环境变数 LANG 或 LC_COLLATE 环境变数确定。在 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 "National Language Support Overview for Programming" 包含更多细节。 当 ls 命令显示目录内容时,它不显示名称以 .(点)开头的档案项,除非使用了 -a 或者 -A 标志。如果命令由 root 用户执行,它预设使用 -A 标志。 格式化输出有三种主要方式: * 每行列出一项。 * 通过指定 -C 或 -x 标志以多列列出各项。当向 tty 输出时,-C 标志是预设格式。如果档案或目录名太长,ls 命令显示单列输出。 * 通过指定 -m 标志可以以逗号分隔系列列出项。 要确定输出行中字元位置的数目,ls 命令使用环境变数 COLUMNS。如果没有设定此变数,命令获取显示的当前列值。如果使用这些方法,ls 命令还不能确定字元位置的数量,它就使用预设值 80。 使用 -e 和 -l 标志所显示的方式解释如下: 如果第一个字元是: d 此项为目录。 b 此项为块特殊档案。 c 此项为字元特殊档案。 l 此项为符号连结,或者指定 -N 标志,或者符号连结不指向现有档案。 p 此项为一个先进先出(FIFO)特殊档案。 s 此项为本地套接字。 - 此项为普通档案。 接下来的 9 个字元被分成 3 个集合,每个集合 3 个字元。第一组 3 字元集合显示所有者许可权。下一组 3 字元集合显示了组中其它用户的许可权。最后 3 字元集合显示了访问此档案的其它任何人的许可权。每个集合中的三个字元各自表示了档案的读、写和执行许可权。目录的执行许可权让您可以搜寻目录中的指定档案。 许可权表示 如下: r 读 w 写(编辑) x 执行(搜寻) - 没有授予相应的许可权 如果档案有 set-group-ID 方式,那么组执行许可权字元是 s。如果档案有 set-user-ID 方式,则用户执行许可权字元是 s。如果方式位被设定为 01000(八进制)(请参阅 chmod 命令以获得此方式的含义),最后一个方式字元(通常 x 或者 -)是 T。如果没有设定相应的执行许可权,set-ID 的指示和方式位 01000 以大写字母开头(分别为 S 和 T)。方式 t 表示粘滞位是为档案或目录而设定的。 当使用 -e 标志时,其显示方式与使用 -l 标志一样,除了多出了第 11 个字元,其解释如下: + 表示档案有扩展安全性信息。例如,档案可能在方式中有扩展的 ACL、TCB 或者 TP 属性。 通过使用 aclget 命令,可以显示档案的访问控制信息(ACL)。通过使用 chtcb 命令,可以显示 TCB 和 TP 属性的值。 - 表示档案没有扩展安全性信息。 当列出目录中档案大小时,ls 命令显示块总数,包括间接块。 标志 -A 列出所有条目,除了 .(点)和 ..(点-点)。 -a 列出目录中所有项,包括以 .(点)开始的项。 -b 以八进制 ( \nnn) 表示法显示非列印字元。 -c 使用索引节点最近一次修改的时间,用以排序(当带 -t 标志使用时)或者用以显示(当带 -l 标志使用时)。该标志必须和 -t 或 -l 标志或者两者一起使用。 -C 以多列纵向排序输出。当往终端输出时,此为预设方法。 -d 仅仅显示指定目录信息。目录和档案一样处理,这在当使用 -l 标志获取目录状态时非常有用。 -e 显示方式(包括安全信息)、连结数目、所有者、组、大小(按位元组)、最近修改时间和每个档案名称称。如果档案是特殊档案,大小栏位包含主要和次要设备数目。如果档案是符号连结,会列印所连结到的档案的路径名,其前有 ->(减号,大于号)符号。显示符号连结的属性。 -E 列出档案的保留空间、固定范围大小和范围分配标志信息。使用该标志时,必须指定 -l 标志。 -f 在每个存储槽中列出 Directory 参数指定的每个目录的名称。该标志关闭 -l、-t、 -s 和 -r 标志并且开启 -a 标志。列表的顺序就是项出现在目录中的顺序。 -F 如果档案是目录,在档案名称后面放置一个 /(斜杠),如果档案可执行,则放置一个 *(星号),如果档案为套接字,则放置一个 =(等号),如果为 FIFO,则放置一个 |(管道)符号,如果是符号连结,则放置一个 @。 注:只有在使用 -N 标志或者连结指向一个不存在的档案时,符号连结显示时才后跟 ->。否则,显示目标档案的有关信息。通过输入 ls -f 命令,也可以调用此选项。 -g 与使用 -l 标志时显示同样的信息,除了 -g 标志禁止显示所有者和符号连结信息。 -H 如果在命令行上指定了引用类型目录档案的符号连结,ls 命令将档案信息和档案类型估计为由连结引用的档案的信息和类型,而非连结本身;然而,ls 命令将写连结本身的名称,而非由连结引用的档案。 -i 显示每个档案报告第一列中的索引节点数目。 -L 列出连结引用的档案或目录内容。此为预设 *** 作。后跟符号连结。如果使用 -l 选项,-N 选项就成为预设值,不后跟符号连结。当使用 -l 选项时,仅有 -L 选项能够覆盖 -N 预设值。 -l (L 的小写)显示方式、连结数目、所有者、组、大小(按位元组)和每个档案最近一次修改时间。如果档案是特殊档案,大小栏位包含主要和次要设备数目。如果最近一次修改时间大于六个月之前,时间栏位以 月份 日期 年份 的格式显示,然而六个月内修改的档案以 月份 日期 时间 的格式显示。 如果档案是符号连结,,列印所连结到的档案的路径名,其前跟 ->。显示符号连结的属性。-n、-g、和 -o 标志覆盖 -l 标志。 注意事项 1. 符号连结档案后跟一个箭头,然后是符号连结的内容。 2. 当使用 -l 选项时,通过执行 mkpasswd 命令,可以提高 ls 命令的执行性能。当目录包含不同用户拥有的档案时,这非常有用,比如 /tmp 目录。 -m 使用流输出格式(逗号分隔系列)。 -n -n 标志除显示用户和组 ID 而不是用户和组名称以外,它显示和 -l 标志同样的信息。 -N 当确定档案状态时,不跟在符号连结之后。 注:如果使用 -L 和 -N 两个标志,最后一个标志起作用。同样的,任何时候给定一个包含以 /(斜杠)作为最后字元的符号连结,不管使用何种选项,后面都会跟有连结。 -o -o 标志除禁止显示组和符号连结信息之外,它显示和 -l 标志同样的信息。 -p 如果档案是目录,在每个档案名称后面放置一个斜杠。当将 ls 命令的输出通过管道传递到 pr 命令时,这很有用,如下所示: ls -p | pr -5 -t -w80 -q 将档案名称中的非列印字元显示成 ?(问号)。 -r 反转排序顺序,适当的按字母逆向排序或者首先排序最旧的档案。 -R 递归列出所有子目录。 -s 按照千位元组(包括间接块)给出每一项的大小。 -t 按照最近一次修改时间(最近的最先)而不是名称排序。 -u 使用最近访问时间,而不是最近修改时间用以排序(当使用 -t 标志)或者显示(当使用 -l 标志)。如果不和 -t 或 -l 标志或两者一起使用,则该标志无效。 -x 以多列格式横向排序输出。 -1 强制输出为每行一项格式。当输出没有定向到终端时,此为预设值。 退出状态 此命令返回以下退出值: 0 写所有档案成功。 >0 产生错误。 示例 1. 要列出当前目录中的所有档案,请输入: ls -a 列出所有档案,包括 .(点)、..(点点)和其他以点开头的档案。 2. 要显示详细信息,请输入: ls -l chap1 .profile 显示一个长列表,包括关于 chap1 和 .profile 的详细信息。 3. 要显示有关目录的详细信息,请输入: ls -d -l . manual manual/chap1 显示目录 . 和 manual 以及档案 manual/chap1 的长列表。不使用 -d 标志时,会列出 . 和 manual 目录中的所有档案,而不是关于目录本身的详细信息。 4. 要按照修改时间列出档案,请输入: ls -l -t 显示最近被修改档案的长列表,较旧的档案跟在后面。 档案 /usr/bin/ls 包含 ls 命令。 /etc/passwd 包含用户 ID。 /etc/group 包含组 ID。 /usr/share/lib/terminfo/* 包含终端信息。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)