2017-02-22 56 views
1

Системы банковских хранилищ, которые имеют тактильную цифровую клавиатуру для ввода ввода, уязвимы для злоупотребления вором. Воры могут использовать камеры, сами или даже другие люди для просмотра рисунка, который вводится 4-значный вывод; поэтому им не нужно знать фактическое значение вашего штыря, просто последовательность нажатий на кнопки, которые позволят войти в систему. Чтобы преодолеть этот фатальный недостаток, можно использовать сенсорный дисплей с графическим интерфейсом цифровой клавиатуры с перетаскиванием клавиш каждый раз при вводе PIN-кода, правильно ли это или нет.Перетасовка кнопок кнопочных переключателей с сенсорным экраном [PYTHON]

Кто-то отправил ответ на аналогичный вопрос, но не включил функцию тасования. Need a Gui Keypad for a touchscreen that outputs a pin when code is correct

Я играл с кодом в ответе на вопрос, указанный в ссылке выше, пытаясь перетасовать список «ключи» всякий раз, когда вводится «#», но это не работает. Вы, ребята, не знаете, как сделать сенсорную графическую клавиатуру с номерами, которые каждый раз перетасовывают «#»?

ответ

0

Используя тот же код, по ссылке вы вывесили генерировать матрицу кнопок:

import random 

keys = [ 
    ['1', '2', '3'],  
    ['4', '5', '6'],  
    ['7', '8', '9'],  
    ['*', '9', '#'],  
] 

for key in keys: 
    random.shuffle(key) 
    #optionally we can also shuffle the keys list 
    random.shuffle(keys) 

Вы можете использовать print(keys), чтобы проверить выбор на нескольких прогонов. Я уверен, что есть еще более простые способы сделать это, но это довольно просто.

Редактировать: Я не проверял ответ на эту тему изначально. Вы можете использовать random.shuffle(key), чтобы частично перетасовать порядок трех клавиш, отображаемых на клавиатуре, и дополнительный random.shuffle(keys), чтобы перетасовать список снова.

+0

Это не работает для меня. Команда print (keys) показывает мне, что она перетасовывает список, но графический интерфейс не обновляется. – greatgamer34

+0

Мне кажется, мне нужно настроить текстовую переменную, но я не уверен, как это сделать. – greatgamer34