สคริปต์ทุบตีแบบขนานกำลังมองหารหัสผ่าน


0

สิ่งที่ฉันมีคือสคริปต์ด้านล่างสำหรับการเดารหัสผ่าน ฉันจะทำให้มันขนานโดยใช้คำสั่งได้parallelอย่างไร ฉันรู้ว่าไม่มี Cygwin ในขนาน แต่ฉันสามารถใช้สคริปต์นี้บนเครื่อง Linux

#!/bin/bash
while read -r p; do
    "/cygdrive/c/Program Files/TrueCrypt/TrueCrypt.exe" /a /s /l x /q /v container.tc /p"$p"
    code=$?
    echo "$code $p">>log.txt
    echo "$code $p"
    if [ "$code" -ne 1 ]; then echo "$p" >> found.txt ; echo -e "\\a" ; exit ; fi
done < passwds.txt
echo -e "\\a"

และคำถามคืออะไร
matzeri

คำตอบ:


1

ฉันเดาว่าคำขอของคุณคือเขียน scirpt นี้โดยใช้โปรแกรมอรรถประโยชน์parallelใน GNU / Linux

คำสั่ง Bulitin whileคืออ่านบรรทัดจากpasswds.txtบรรทัดไฟล์โดยบรรทัด หากไฟล์ของคุณมีขนาดใหญ่พอจะใช้เวลานานโดยโทเท็ลจะยาวมาก

ที่นี่ฉันลองใช้parallelเพื่อเขียนใหม่

#!/usr/bin/env bash

funcPasswdOperation(){
    p="${1:-}"
    "truecrypt" --non-interactive container.tc /p="$p"
    code=$?
    echo "$code $p">>log.txt
    echo "$code $p"
    if [ "$code" -eq 0 ]; then echo "$p" >> found.txt ; echo -e "\\a" ; exit ; fi
}

export -f funcPasswdOperation
cat passwds.txt | parallel -k -j 0 funcPasswdOperation
echo -e "\\a"

เนื่องจากฉันไม่ได้ทดสอบดังนั้นฉันจึงไม่รับประกันว่าข้อความที่เขียนซ้ำนี้จะใช้งานได้ แต่วิธีการใช้งานก็คล้ายคลึงกัน

ระวังopen filesข้อผิดพลาด


สุดยอดสคริปต์! มันได้ผล! แต่ฉันจะหยุดงานได้อย่างไรถ้าพบรหัสผ่าน? exitดูเหมือนจะใช้งานไม่ได้ ...
pbies

คุณสามารถพิจารณาตั้งค่าตัวแปรส่วนกลางโดยกำหนดเป็นค่าเริ่มต้นจากนั้นตรวจสอบ exitหากคุณตรงกับรหัสผ่านที่ถูกต้องเปลี่ยนตัวแปรทั่วโลกค่าอื่นถ้าคุณตรวจสอบตัวแปรทั่วโลกมีการเปลี่ยนแปลงจากนั้นตั้งค่า
กอร์กอน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.