ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Крашит скрипт (https://forum.antichat.xyz/showthread.php?t=1381346)

T1cKz 10.03.2021 15:57

Решил попробовать python. набросал код, вроде работает, но через 505 генераций - крашит

Python:





Код:

import
hashlib
import
random
import
string

vals
=
0
def
random_char
(
y
)
:
return
''
.
join
(
random
.
choice
(
string
.
ascii_letters
)
for
x
in
range
(
y
)
)
def
Start
(
vals
)
:
#strInp = input("Введите пароль: ")
strInp
=
random_char
(
6
)
vals
+=
int
(
1
)
return
PassGen
(
strInp
,
vals
)
def
PassGen
(
str1
,
vals
)
:
hash
=
hashlib
.
md5
(
str1
.
encode
(
"UTF-8"
)
)
.
hexdigest
(
)
codeTrue
=
0
with
open
(
'MD5Default.txt'
,
'r+'
)
as
file
:
isFileFound
=
0
#print("\n===========================\n          MD5 BASE\n===========================\n")
for
line
in
file
:
cr
,
reg
=
line
.
split
(
":"
)
reg
=
reg
.
rstrip
(
)
if
cr
==
hash
:
#print("[MD5] Найден пароль: "+reg)
isFileFound
=
1
if
isFileFound
==
0
:
#print("[MD5] Пароль не был найден в БД")
file
.
write
(
hash
+
":"
+
str1
+
"\n"
)
codeTrue
=
1
#print("[MD5] Записан в БД "+hash+":"+str1)
file
.
close
(
)
hash1
=
hashlib
.
sha256
(
str1
.
encode
(
"UTF-8"
)
)
.
hexdigest
(
)
with
open
(
'SHA256Default.txt'
,
'r+'
)
as
file
:
isFileFound
=
0
#print("\n===========================\n          SHA256 BASE\n===========================\n")
for
line
in
file
:
cr
,
reg
=
line
.
split
(
":"
)
reg
=
reg
.
rstrip
(
)
if
cr
==
hash1
:
#print("[SHA256] Найден пароль: "+reg)
isFileFound
=
1
if
isFileFound
==
0
:
#print("[SHA256] Пароль не был найден в БД")
file
.
write
(
hash1
+
":"
+
str1
+
"\n"
)
codeTrue
=
1
#print("[SHA256] Записан в БД "+hash1+":"+str1)
file
.
close
(
)
hash2
=
hashlib
.
sha512
(
str1
.
encode
(
"UTF-8"
)
)
.
hexdigest
(
)
with
open
(
'SHA512Default.txt'
,
'r+'
)
as
file
:
#print("\n===========================\n          SHA512 BASE\n===========================\n")
isFileFound
=
0
for
line
in
file
:
cr
,
reg
=
line
.
split
(
":"
)
reg
=
reg
.
rstrip
(
)
if
cr
==
hash2
:
#print("[SHA512] Найден пароль: "+reg)
isFileFound
=
1
codeTrue
=
1
if
isFileFound
==
0
:
#print("[SHA512] Пароль не был найден в БД")
file
.
write
(
hash2
+
":"
+
str1
+
"\n"
)
#print("[SHA512] Записан в БД "+hash2+":"+str1)
file
.
close
(
)
print
(
str
(
vals
)
+
" | "
+
str1
+
" ("
+
str
(
codeTrue
)
+
")"
)
str1
=
""
Start
(
vals
)
Start
(
vals
)


Neon3333 14.03.2021 15:08

Зачем ты вызываешь close у открытого через контекстный менеджер файлового дескриптора? Если он и предназначен для автоматической очистки ресурсов

T1cKz 19.03.2021 01:02

Цитата:

Сообщение от Neon3333

Зачем ты вызываешь close у открытого через контекстный менеджер файлового дескриптора? Если он и предназначен для автоматической очистки ресурсов

Но ведь в цикле мы берём open для файла, потом чтение запись и закрытие файла? не логично? как тогда по другому?

kfor 19.03.2021 01:21

Цитата:

Сообщение от T1cKz

Но ведь в цикле мы берём open для файла, потом чтение запись и закрытие файла? не логично? как тогда по другому?

with open автоматически закрывает файл после выполнения кода внутри этого блока

Neon3333 19.03.2021 04:23

Цитата:

Сообщение от T1cKz

Но ведь в цикле мы берём open для файла, потом чтение запись и закрытие файла? не логично? как тогда по другому?

А ты код не копипасть в тупую, а возьми и ознакомься с тем что делает та или иная функция


Время: 20:32