
수백만 개의 키워드 기반 비밀번호 변형을 몇 초 만에 생성합니다.
특별히 감사드립니다: DavidAngelos:
▶️ 실행 추적을 위한 진행률 표시줄이 추가되었습니다.
▶️ 다음 옵션이 추가되었습니다:
-i / --inorder): 키워드를 원래 순서대로만 결합합니다 (예: foo,bar,baz → foo, bar, baz, foobar, foobaz, barbaz, foobarbaz).-c / --combinations): 각 부분 집합의 모든 순서를 생성합니다 (예: foo,bar,baz → foo, bar, baz, foobar, foobaz, barfoo, …, bazbarfoo).--sep <string>): 단어 결합 시 토큰 사이에 이 문자열을 삽입합니다 (기본값: 구분자 없음).--max-combine <N>): 결합할 원시 키워드의 최대 개수를 제한합니다 (기본값: 2).--minlen/--maxlen <N>): 원하는 길이의 단어만 포함하도록 최종 단어 목록을 필터링합니다.Psudohash는 무차별 대입 공격 및 해시 크래킹을 위한 비밀번호 목록 생성기입니다. 사람들이 일반적으로 사용하는 비밀번호 생성 패턴을 모방합니다. 예를 들어 단어의 문자를 기호나 숫자로 대체(leet), 대소문자 변형 사용, 주요 암호 앞뒤에 일반적인 패딩 추가 등이 있습니다. 키워드 기반이며 사용자 정의가 매우 용이합니다. 🎥 -> 동영상 프레젠테이션
시스템 관리자 및 기타 직원들은 종종 회사 이름의 변형된 버전을 사용하여 비밀번호를 설정합니다 (예: Am@z0n_2022). 이는 네트워크 장치(Wi-Fi 액세스 포인트, 스위치, 라우터 등), 애플리케이션 또는 도메인 계정에서 흔히 발생합니다. 가장 기본적인 옵션만으로도 psudohash는 하나 이상의 키워드에 대해 일반적인 문자 대체 패턴(사용자 정의 가능), 대소문자 변형, 패딩으로 자주 사용되는 문자열 등을 기반으로 모든 가능한 변형을 포함하는 단어 목록을 생성할 수 있습니다. 다음 예시를 참조하십시오:

이 스크립트는 다음과 같은 문자 대체 스키마를 구현합니다. psudohash.py의 transformations 리스트를 편집하고 아래에 제시된 데이터 구조를 따라 문자 대체 매핑을 추가/수정할 수 있습니다 (기본값):
transformations = [
{'a' : ['@', '4']},
{'b' : '8'},
{'e' : '3'},
{'g' : ['9', '6']},
{'i' : ['1', '!']},
{'o' : '0'},
{'s' : ['$', '5']},
{'t' : '7'}
]
비밀번호를 설정할 때, 주요 암호 앞이나 뒤에 일련의 문자를 추가하여 '더 강력하게' 만드는 것이 일반적이라고 생각합니다. 예를 들어, 'dragon'이라는 비밀번호를 설정하고 끝에 '!!!' 또는 '!@#' 같은 값을 추가하여 'dragon!!!', 'dragon!@#' 등을 만들 수 있습니다. Psudohash는 common_padding_values.txt에서 이러한 값을 읽어와 생성된 각 키워드 변형 앞(-cpb)이나 뒤(-cpa)에 추가하여 사용합니다. 필요에 따라 수정할 수 있습니다.
변형된 키워드에 연도 값을 추가할 때, psudohash는 다양한 구분자를 사용합니다. 기본적으로 다음 구분자를 사용하며, year_seperators 리스트를 편집하여 수정할 수 있습니다:
year_seperators = ['', '_', '-', '@']
예를 들어, 주어진 키워드가 "amazon"이고 -y 2023 옵션을 사용한 경우 출력에는 "amazon2023", "amazon_2023", "amazon-2023", "amazon@2023", "amazon23", "amazon_23", "amazon-23", "amazon@23"이 포함됩니다.
먼저 Python 3.x와 tqdm을 설치하십시오:
pip3 install tqdm
그런 다음 리포지토리를 클론하고 스크립트를 실행 가능하게 만드십시오:
git clone https://github.com/t3l3machus/psudohash.git
cd ./psudohash
chmod +x psudohash.py
./psudohash.py [-h] -w WORDS [-i] [-c] [--sep SEP] [--max-combine N] [-an LEVEL] [-nl LIMIT] [-y YEARS] [-ap VALUES] [-cpb] [-cpa] [-cpo] [-o FILENAME] [-q]
도움말 대화상자 [ -h, --help ]에는 사용 세부 정보와 예제가 포함되어 있습니다.
-w, --words <kw1,kw2,…>
쉼표로 구분된 원시 키워드 (필수).
-i, --inorder
주어진 순서대로 최대 --max-combine개의 키워드를 결합합니다 (예: foo,bar,baz → foo, bar, baz, foobar, foobaz, barbaz, foobarbaz).
-c, --combinations
각 부분 집합의 모든 순열을 생성합니다 (최대 --max-combine개) (예: foo,bar,baz → foo, bar, baz, foobar, foobaz, barfoo, …).
--max-combine <N> (기본값: 2)
하나의 기준 문자열로 결합할 원시 키워드의 최대 개수입니다.
--sep <string>
단어 결합(-i 또는 ) 시 토큰 사이에 이 문자열을 배치합니다. 기본값은 빈 문자열입니다.
다중 단어 없음 (단일 단어만)
./psudohash.py -w foo,bar,baz -cpa
# → foo, bar, baz
In-order 결합 (-i, 기본적으로 최대 2단어)
./psudohash.py -w foo,bar,baz -i
# → foo, bar, baz, foobar, foobaz, barbaz
All-order 조합 (-c, 기본적으로 최대 2단어)
./psudohash.py -w foo,bar,baz -c
# → foo, bar, baz, foobar, foobaz, barfoo, barbaz, bazfoo, bazbar
결합 단어 간 구분자 변경
./psudohash.py -w foo,bar,baz -i --sep "_"
# → foo, bar, baz, foo_bar, foo_baz, bar_baz
길이 필터링 (--minlen/--maxlen)
./psudohash.py -w apple,banana -i --minlen 10
# Warning: exact size cannot be determined because of length filters.
# Example final outputs might include “applebanana” (11 chars), “bananaapple” (11 chars).
최대 3개의 단어 결합 (기본값 2 대신)
--years와 --append-numbering 옵션을 --numbering-limit이 연도 입력의 마지막 두 자리 이상인 경우 함께 사용하면 도구의 변형 패턴으로 인해 중복 단어가 생성될 가능성이 높습니다.--minlen 또는 --maxlen을 사용하면 스크립트가 정확한 단어 수를 사전 계산할 수 없습니다. '정확한 크기를 확인할 수 없음' 경고가 표시되고 이 필터 없이 크기가 계산되며 최종 크기는 더 작아집니다.사람들의 경우, 우리 모두는 (어느 정도) 자신에게 의미 있는 하나 이상의 단어의 변형을 사용하여 비밀번호를 설정한 적이 있다고 생각합니다. 예를 들어, 자신의 이름이나 아내/아이/애완동물/밴드 이름, 태어난 연도를 끝에 붙이거나 '!@#' 같은 매우 안전한 패딩을 사용하는 것입니다. 음, 그렇다면?

일반적으로 사용되는 비밀번호 생성 패턴에 대한 정보를 수집하여 도구의 기능을 향상시킬 계획입니다.
-c--minlen <N>
N자보다 짧은 최종 비밀번호는 버립니다.
--maxlen <N>
N자보다 긴 최종 비밀번호는 버립니다.
-an, --append-numbering <LEVEL>
각 단어 변형에 번호가 매겨진 접미사(<LEVEL> 자릿수로 0으로 채움)를 추가합니다.
-nl, --numbering-limit <LIMIT>
숫자를 추가할 때 셀 최대 숫자 (기본값: 50).
-y, --years <years>
각 변형에 하나 이상의 연도를 추가합니다 (예: 1990-2000, 또는 2022,2023).
-ap, --append-padding <vals>
사용자 정의 패딩 값(쉼표로 구분)을 추가합니다. -cpb 또는 -cpa와 함께 사용해야 합니다.
-cpb, --common-paddings-before
각 변형 앞에 common_padding_values.txt의 값을 앞에 추가합니다.
-cpa, --common-paddings-after
각 변형 뒤에 common_padding_values.txt의 값을 추가합니다.
-cpo, --custom-paddings-only
사용자 제공 패딩만 사용합니다 (기본값 없음). -ap와 함께 사용해야 합니다.
-o, --output <file>
결과를 <file>에 씁니다 (기본값: output.txt).
-q, --quiet
시작 시 ASCII 아트 배너를 표시하지 않습니다.