if grep -q "�" out.txt
then
echo "working"
else
cat out.txt
fi
기본적으로 파일 "out.txt"에 파일의 아무 곳에 나 " "가 포함되어 있으면 "working"을 에코하고 "out.txt"파일에 파일의 "where"가없는 경우 파일을 원합니다 고양이 out.txt에
편집 : 그래서 내가하고있는 일이 있습니다. openssl 암호 해독을 무력화하려고합니다.
openssl enc는 성공하면 0을, 그렇지 않으면 0이 아닌 값을 반환합니다. 참고 : AES / CBC는 패딩을 올바르게 수행하여 "암호 해독이 작동하는지"만 판단 할 수 있으므로 오 탐지가 발생합니다. 따라서 파일이 해독되지만 올바른 암호가 아니므로 횡설수설됩니다. 횡설수설의 일반적인 문자는 " "입니다. 따라서 출력에 " "가 포함되어 있으면 do 루프가 계속 진행되기를 원합니다.
여기 내 자식 링크 https://github.com/Raphaeangelo/OpenSSLCracker 여기 스크립트가 있습니다
while read line
do
openssl aes-256-cbc -d -a -in $1 -pass pass:$line -out out.txt 2>out.txt >/dev/null && printf "==================================================\n"
if grep -q "�" out.txt
then
:
else
cat out.txt &&
printf "\n==================================================" &&
printfn"\npassword is $line\n" &&
read -p "press return key to continue..." < /dev/tty;
fi
done < ./password.txt
여전히 charicter로 출력을 보여줍니다.
업데이트 : 해결
printf "Working..."
while read line
do
openssl aes-256-cbc -d -a -in $1 -pass pass:$line -out out.txt 2>out.txt >/dev/null
if file out.txt | grep -q 'out.txt: ASCII text'
then
printf "\n==================================================\n\n" &&
cat out.txt &&
printf "\n==================================================" &&
printf "\npassword is $line\n" &&
read -p "press return key to continue..." < /dev/tty;
else
:
fi
done < ./password.txt
How to grep for unicode � in a bash script
은 이것이 정말로 당신이 원하는 것입니까? 유니 코드를 추출하려면? 우리가 도울 수 있도록 명확히하십시오!
grep
long은 유니 코드를 이해합니다 (아주 문자열을 검색LANG=C grep
하면 성능이 크게 향상 되므로 속도가 훨씬 느려집니다 ).