Python argparse вырезать половину аргумента - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь ввести хэш sha512 в качестве аргумента, но argparse просто обрезает половину его без причины. Когда я вхожу в хэш Unix (MiqkFWCm1fNJI), он работает как положено. Я пытался найти что-то подобное, но ничего не нашел. Мой код для аргументов командной строки выглядит так:

def check_args():
    parse = argparse.ArgumentParser()
    parse.add_argument('-p', '--password', type=str, action='store', help='enter your hashed password: -p your_hash')
    parse.add_argument('-w', '--wordlist', help='add your wordlist: -w wordlist')
    parse.add_argument('-f', '--file', help='file with hashes: -f your_hashes')

    args_list = parse.parse_args()

    return args_list

Часть кода, где он используется:

    c_arg = check_args()

    psw = c_arg.password
    wordlist = c_arg.wordlist
    file = c_arg.file
    print(psw)

поэтому, когда я запускаю скрипт

python crack.py -p $6$krVh8s..$ttQmt30au3s9wHywp/KGdFKGe1WoEK4xpFJupMA.I06/tdv1//4x7e1gSU2e2Qu/1kQ0rfqXRxghfBX0Io1BJ.

Я получаю этот вывод:

../KGdFKGe1WoEK4xpFJupMA.I06/tdv1//4x7e1gSU2e2Qu/1kQ0rfqXRxghfBX0Io1BJ.

, который должен быть:

 $6$krVh8s..$ttQmt30au3s9wHywp/KGdFKGe1WoEK4xpFJupMA.I06/tdv1//4x7e1gSU2e2Qu/1kQ0rfqXRxghfBX0Io1BJ.

если я запускаю тот же сценарий с таким аргументом, он работает так, как предполагалось:

python crack.py -p MiqkFWCm1fNJI

Выход:

MiqkFWCm1fNJI

Что может быть не так в этом, и как я могу заставить argparse читать этот тип строк?

1 Ответ

0 голосов
/ 03 ноября 2018

Ваша проблема не имеет ничего общего с argparse или Python.

$6 и т.п. являются ссылками на [несуществующие] переменные среды в Unix / Linux. Их значения '' (пустые строки). Заключите весь хэш в одинарные кавычки, чтобы защитить данные от интерпретации оболочкой: '$6$krVh8s..$ttQmt30au3s9wHywp/...'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...