Пожалуйста, обратите внимание, что пользователь заблокирован
Привет, мне нужна помощь. У меня есть 1:1:mail:hash file и hash:pass файл, и я хочу присоединиться к ним, чтобы создать файл mail:pass. Как я могу это сделать? Помощь будет оценена
Я не знаю python, я не программист, мне нужен кто-то, чтобы мне помочьСчитываешь два файла в память по строкам, разбиваешь каждую строку по символу ":", получаешь столбцы, соответствующие мейлу и хешу, из второго хешу и паролю, ищешь хеши из первого словаря во втором, если хеш есть, заменяешь хеш на пароль.
join -1 2 -2 1 <(sort -k 2 1.txt) <(sort 2.txt) | cut -d \ -f 2,3 > 3.txtПроблема в том, что я не знаю, какое программное обеспечение существует, как вы говорите, и вторая проблема в том, что строки не совпадают, у меня 150k hash:plain и 700k 1:1:email:hashВыдираешь мыло из первой базы, после выдираешь пассы из второй базы, и склеиваешь их, софтов много для этого.
for mail in $(cat input1.txt | awk -F: '{print $3}'); do grep "$mail" input2.txt >> output.txt; done
такая команда может тебе помочь:
join -1 2 -2 1 <(sort -k 2 1.txt) <(sort 2.txt) | cut -d \ -f 2,3 > 3.txt
Если правильно понял, то
Bash:for mail in $(cat input1.txt | awk -F: '{print $3}'); do grep "$mail" input2.txt >> output.txt; done
#!/bin/bash
# FILE ONE CONTAINS email:hash
FILE_ONE="file1.txt"
# FILE TWO CONTAINS hash:plaintext
FILE_TWO="file2.txt"
while IFS= read -r line
do
# echo "$line"
e=$(echo "$line" | awk -F: '{ print $3 }')
h=$(echo "$line" | awk -F: '{ print $4 }')
p=$(grep $h $FILE_TWO | awk -F: '{ print $2}')
echo "$e:$p"
done < "$FILE_ONE"
join -1 2 -2 1 -t: <(sort -k 2 1.txt) <(sort 2.txt) | cut -d':' -f 2,3 > 3.txtДля разделителя полей двоеточие, нужно было немного изменить команду:
join -1 2 -2 1 -t: <(sort -k 2 1.txt) <(sort 2.txt) | cut -d':' -f 2,3 > 3.txt
3ton@tryton:~/folder_tmp$ ls -lah
итого 16K
drwxrwxr-x 2 3ton 3ton 4,0K дек 30 22:12 .
drwxr-xr-x 3 3ton 3ton 4,0K дек 30 21:13 ..
-rw-rw-r-- 1 3ton 3ton 216 дек 30 22:12 1.txt
-rw-rw-r-- 1 3ton 3ton 174 дек 30 22:12 2.txt
3ton@tryton:~/folder_tmp$ cat 1.txt
djfhdjshjhb@mail.com:30310be0a898247d89c0042fc965c313
jhghhvhv@gmail.com:9aa8939f349de697d27218cca88884e7
hvhgvghvhvhgvgh@yahho.com:39af3c6eaa3760b2dde4974993dcbbd6
rdtdtd5@yandex.ru:c9bdd0356fad654224cd88c61f8a660c
3ton@tryton:~/folder_tmp$ cat 2.txt
30310be0a898247d89c0042fc965c313:root@2812
9aa8939f349de697d27218cca88884e7:Suporte@admin
39af3c6eaa3760b2dde4974993dcbbd6:australy
c9bdd0356fad654224cd88c61f8a660c:admlocal
3ton@tryton:~/folder_tmp$ join -1 2 -2 1 -t: <(sort -k 2 1.txt) <(sort 2.txt) | cut -d':' -f 2,3 > 3.txt
3ton@tryton:~/folder_tmp$ ls -lah
итого 20K
drwxrwxr-x 2 3ton 3ton 4,0K дек 30 22:12 .
drwxr-xr-x 3 3ton 3ton 4,0K дек 30 21:13 ..
-rw-rw-r-- 1 3ton 3ton 216 дек 30 22:12 1.txt
-rw-rw-r-- 1 3ton 3ton 174 дек 30 22:12 2.txt
-rw-rw-r-- 1 3ton 3ton 126 дек 30 22:12 3.txt
3ton@tryton:~/folder_tmp$ cat 3.txt
djfhdjshjhb@mail.com:root@2812
hvhgvghvhvhgvgh@yahho.com:australy
jhghhvhv@gmail.com:Suporte@admin
rdtdtd5@yandex.ru:admlocal
with open('1:1:mail:hash.TXT') as f:
first = f.readlines()
with open('hash:pass.TXT') as f:
second = f.readlines()
first = [x.split(':') for x in first]
second = [x.split(':') for x in second]
#the_set = set([x[0] for x in second]) #это раскомментируй если хочешь быстрее
first = [[x[2],x[3]] for x in first]
second = {x[0]:x[1] for x in second}
new_csv = []
for L in first:
#E = 'NO_PASS_FOUND' if L[0] not in the_set else second[L[0]] #это раскомментируй если хочешь быстрее
E = 'NO_PASS_FOUND' if L[0] not in second else second[L[0]] #это закомментируй если хочешь быстрее
new_csv.append([L[0], E])
new_csv = [':'.join(x) for x in new_csv]
new_csv = [x + '\n' for x in new_csv]
with open('new_csv.TXT', 'w') as f:
f.writelines(new_csv)