У меня возникают проблемы при проверке, если введенный PIN-код (check_pin) == правильный контактный (контактный)Python - base64 - сравнение пользовательский ввод против сохраненного PIN
тестовые выходы check_pin и пин-код одинаковы, но она не видит их как эквивалент (строка 4)
код:
pin_check = input("Please input your 4 digit PIN number: ")
print("g"+str(base64.b64encode(bytes(pin_check, "utf-8"))))
print(pin)
if "g"+str(base64.b64encode(bytes(pin_check, "utf-8"))) == pin:
y = 0
else:
v = v + 1
y = int(y) - 1
print("Incorrect PIN,",y,"attempts remaining.\n")
Выходы:
Please input your 4 digit PIN number: 1234 [user input, correct pin[1234]]
gb'MTIzNA==' [stored pin]
gb'MTIzNA==' [user input pin]
Incorrect PIN, 2 attempts remaining. [it should set y = 0, not print this line]
Хранится штифт: Pin.txt состоит из нескольких строк: gb'MTIzNA ==»
import linecache
fo = open("Pin.txt", "r")
pin = linecache.getline('Pin.txt', int(card_no))
print(pin)
fo.close()
Если я объявляю 'pin' как' pin = "gb'MTIzNA == '" ', тогда строка' if' g "+ str (base64.b64encode (bytes (pin_check, 'utf-8'))) = = pin: print ('ok') 'на самом деле печатает' 'ok''. Это поможет узнать, как вы объявляете 'pin' –