比较SHA-512咸哈希,在执行过程中显示文件名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较SHA-512咸哈希,在执行过程中显示文件名相关的知识,希望对你有一定的参考价值。
长话短说,我注意到LIST中的"*"
以某种方式显示了我正在执行的文件的名称。无论如何,是否让代码显示"*"
而不显示文件名?
我仍然是脚本新手,想不出任何办法。请帮助...
#!/bin/bash
LIST='W 2 v * %'
encr="Cd9AjUI4nGglIcP3MByrZUnu.hHBJc7.eR0o/v0A1gu0/6ztFfBxeJgKTzpgoCLptJS2NnliZLZjO40LUseED/"
salt="8899Uidd"
for i in $LIST
do
for j in $LIST
do
for k in $LIST
do
for l in $LIST
do
for a in $LIST
do
echo -n "$i$j$k$l$a "
test=`mkpasswd -m SHA-512 $i$j$k$l$a -s $salt`
if [ $test == $encr ] ; then
echo " Password is: $i$j$k$l$a"
exit
fi
done
done
done
done
done
#error displaying *
答案
与echo *
相同,将球体*
扩展为当前目录中的文件名,同样的方式a=*; for i in $a; do echo $i; done
将在当前目录中打印路径。您可以在网上的各个地方阅读有关引号和转义的更多信息。
您可以使用bash数组正确引用元素:
LIST=(W 2 v "*" %)
for i in "${LIST[@]}"; do
注意:
- 不要使用反引号`,不建议使用。请改用
$(..)
。 - 引用变量扩展名
[ "$test" = "$encr" ]
以防止受到此类常见错误的侵害。 - [
==
是bash扩展名,请使用=
可移植。 - 用于生成元素置换的方法看起来很奇怪,并且无法扩展。考虑编写函数或使用其他方法。甚至(ab-)使用bash扩展名brace expansion
echo {W,2,v,"*",%}{W,2,v,"*",%}{W,2,v,"*",%}{W,2,v,"*",%}{W,2,v,"*",%}
看起来都较短。
以上是关于比较SHA-512咸哈希,在执行过程中显示文件名的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Java 中使用 SHA-512 对密码进行哈希处理?
如何使用 OpenSSL 计算 SHA512/224 和 SHA512/256 哈希?