比较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 *

Executed filename displayed

答案

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咸哈希,在执行过程中显示文件名的主要内容,如果未能解决你的问题,请参考以下文章

使用 SHA512 对密码进行哈希处理以加密数据

如何在Swift中将字符串哈希到SHA512?

如何在 Java 中使用 SHA-512 对密码进行哈希处理?

如何使用 OpenSSL 计算 SHA512/224 和 SHA512/256 哈希?

windows 查看文件 MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512码

C#:使用来自 /etc/shadow 的 linux 用户的 salt 验证密码哈希 (SHA512)