프로그래밍이 처음인데 이것이 가능할 지 궁금합니다. 암호를 한 번 입력 한 다음 다음에 스크립트를 열 때 스크립트를 진행해야하는 암호로 보호 된 스크립트를 만들려고합니다. 나는 파일에 암호를 저장하고 암호화하고 다음 번에 스크립트가 열릴 때 파일이 존재하는지 확인하려고합니다. 내가 당면한 문제는 패스워드가 일치하는지 확인하는 것이다. 왜냐하면 원래 패스워드는 로컬 변수로서의 함수이기 때문이다.로컬 변수와 전역 변수 파이썬
def createFile():
pw = input('Enter Password: ')
pw2 = input('ReType Password: ')
if pw == pw2:
newPw = encrypt(pw, 10) #encodes the string with a key in a seperate encrypt function
pwFile = open('PW.txt', 'a')
pwFile.write(newPw)
pwFile.close()
else:
print('The passwords do not match')
createFile()
if os.path.isfile('PW.txt'):
print('File exists')
pwCheck = input('What is the password? ')
#I can not check pwCheck == pw since pw is a local var.
#progression of script here
else:
createFile()
로컬 변수를 전역 변수로 만드는 것은 좋지 않은 것으로 알고 있습니다. 이 일을하기 위해 제가 지금까지 가지고있는 것을 재구성 할 수있는 방법이 있습니까? 필자가 작성한 것처럼 가능한 해결책을 찾지 못했지만 지금은 테스트 할 시간이 없다. pwCheck에 대해 동일한 키로 동일한 암호화 기능을 실행하고 PW.txt의 첫 번째 줄에 ==가 있는지 확인합니까? 그게 맞습니까? 아니면 다른 해결책이 있습니까?
감사합니다. 윈도우를 사용
, 대신 "암호화"의
당신은 파일에서 기존 암호를 읽어 암호를 해독하고, 암호의 * 해시 *를 저장하기 위해 현명하다고 pwCheck''에 대해 – Claudiu
참고를 확인해야, 다음의 해시를 비교 사용자가 파일에있는 내용을 입력합니다. – jonrsharpe