Ternick
@Ternick

Как исправить эти ошибки?

Суть кода в том что он должен записывать в файл ключ зашифрованный в base64 в key.key и потом для себя его расшифровать и спрашивать его сверяя с оригиналом . И я начал делать функцию которая отвечает за запись этого ключа и тут ошибки посыпались )
Код :
import base64
from os.path import isfile

#key = "XXX-XXX-XXX"

def write_encode_key():
	f_name = "key.key"
	encode_key = "b'WFhYLVhYWC1YWFg='"
	check_file = isfile(f_name)
	if check_file == True:
		with open(f_name, "w+") as db:
			encoded_key = db.read()
			if encoded_key == encode_key:
				pass
			else:
				db.write(str(encode_key))
				write_encode_key()
	else:
		with open(f_name, "w") as db:
			db.write(str(encode_key))
			write_encode_key()

write_encode_key() 

#with open("key.key", "r") as db:
#	encoded_key = db.read()
#	decoding_key = base64.b64encode(encoded_key.encode()).decode()
#	print(decoding_key)

Лог ошибок :
Traceback (most recent call last):
  File "C:\Users\User\Desktop\Python\1.py", line 23, in <module>
    write_encode_key() 
  File "C:\Users\User\Desktop\Python\1.py", line 17, in write_encode_key
    write_encode_key()
  File "C:\Users\User\Desktop\Python\1.py", line 17, in write_encode_key
    write_encode_key()
  File "C:\Users\User\Desktop\Python\1.py", line 17, in write_encode_key
    write_encode_key()
  [Previous line repeated 990 more times]
  File "C:\Users\User\Desktop\Python\1.py", line 11, in write_encode_key
    with open(f_name, "w+") as db:
RecursionError: maximum recursion depth exceeded
[Finished in 0.2s with exit code 1]
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
@Helow19274
Вы сравниваете bytes со строкой.
Открывайте файлы для записи и чтения как 'rb' и 'wb'
И тогда записывайте не str(encode_key), а просто encode_key

UPD: Ну или аналогично везде строки вместо bytes.
Но тогда encoded_key.encode() обязательно нужен.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы