1

我正在尝试学习一些脚本。我有一个场景,我丢失了我的 truecrypt 密码。我运行下面的脚本。

#!/bin/sh
DIRECTORY=/media/truecrypt1
for i in 1 2 password
do
   clear
   echo "Trying $i as a password"
   truecrypt -k "" --protect-hidden=no ITSTUDY $DIRECTORY -p $i
   if [[ -d "${DIRECTORY}" && ! -L "${DIRECTORY}" ]] ; then
       echo "It Worked!"
   fi
done

但是,如果密码错误,我会得到

Trying 1 as a password
Incorrect password or not a TrueCrypt volume.
Enter password for /mnt/ITSTUDY:

让脚本再次开始运行的唯一方法是 ctrl+c。如果我在每次失败后按 ctrl+c 最终脚本会得到正确的密码。但是,如果我有 1000 个可能的密码,那不是一个选项。

如何让脚本查找输出

密码不正确或不是 TrueCrypt 卷。

然后发送一个 ctrl+c? 还是退出?到目前为止,我尝试的所有操作都不会在 truecrypt -k 行下方进行,直到我执行 ctrl+c。

4

1 回答 1

1

Truecrypt 正在进入交互模式,在循环的每次迭代中询问您的密码,这将阻止输入,因此循环不会继续。

添加--non-interactive标志应该可以解决这个问题。

于 2013-03-10T19:03:59.980 回答