2016-11-16 2 views
0

이상한 이유로 내 컴퓨터의 Visual Studio에서 코드가 작동하지 않습니다. 그것은 내 스크립트에 오류를 제공합니다. 내가 잘못하고 있니?내 스크립트가 제대로 작동하지 않는 이유는 무엇입니까?

오류는 I이었다 가지고 :

  • errorexpression을 할당 할 수 없습니다 --line 2
  • 예기치 않은 들여 쓰기 --line 2
  • 예기치 않은 토큰 '< dedent >'--line 6
  • 다른 사람으로
print("welcome user") 
varpassword = input("Please enter a password: ") 
if varpassword = "thisisthepassword123": 
    print("Welcome") 
else: 
    print("access denied") 
+0

어떤 오류가 발생합니까? 그것 없이는, 당신을 도우는 것이 다소 어렵습니다. – Kartik

+1

조건문은'='이 아니라'=='이어야합니다. – idjaw

+0

@kartik에서 내가 얻은 오류를 추가했습니다 – TechTorch

답변

2

귀하의 조건문은 대신에 == 연산자를 사용하여 변수에 값을 할당하는 대신 = 대신에 두 값을 비교한다고 표시해야합니다.

if varpassword = "thisisthepassword123": 
난 그냥 일반 텍스트를 이후 (이 설명하는 단지 샘플 코드가 아닌 경우) 당신이 특히 파이썬에서 하드 코드 된 암호 값을 사용하지 않는 것을 추가 할

편집 :

해시 알고리즘을 사용하여 암호를 대신 해시 한 다음 사용자 입력을 해시하고 비교합니다. 그래서 당신은 당신이 "thisisthepassword123" 같은 하드 코딩 된 값을 사용하려는 경우가 f61c1bbcf1f7d68106a18bd753d4fc3c4925793f의 값을가집니다 (그래서 SHA1 또는 같은 것을 통해 암호를 놓을 게요 그래서 hashlib (https://docs.python.org/2/library/hashlib.html 같은 라이브러리를 사용)이 작업을 수행 할 수 있습니다.

import hashlib 
hashlib.sha1(userinput).hexdigest() 

또한 소금에 절인 사용을 고려,이 글을 읽을 : https://crackstation.net/hashing-security.htm

편집 2 : 또한

스크립트에 들여 쓰기가 코드의 들여 쓰기를 일치하는지 확인

+0

하드 코드 란 무엇을 의미합니까? – TechTorch

+0

@TechTorch 당신은 고정 된 문자열 "thisisthepassword123"과 암호를 비교하고 있습니다. 따라서 누군가가 스크립트 파일을 열어서 암호를보고 싶으면 암호를 볼 수 있습니다. 대신 MD5, SHA1 또는 다른 해싱 알고리즘을 사용하여 암호를 해시합니다. 이 라이브러리를 확인하십시오. [link] (https://docs.python.org/2/library/hashlib.html) 코드 샘플을 추가하여 답변에 설명해 보겠습니다. – CrimsonSage

+0

@TechTorch 어떤 Python 버전을 사용하고 있습니까? – CrimsonSage

0

== 비교할 = = 할당 할 때 사용하십시오.

관련 문제