Guten Tag liebes Forum! :)
Ich bin sehr vertraut mit PHP und HTML, bin aber nie dazu gekommen JS zu benutzen, da es bisher nie notwendig war. Jetzt will ich aber für ein Projekt schauen, wie schnell Leute ihr Passwort eintippen. Also jedes einzelne Zeichen soll einen Timestamp zurückgeben und in ein Array geschrieben werden, welches später in eine Datenbank gespeichert wird.
Die Idee dahinter ist, dass ich später die Differenz der Timestamps ausrechne, damit ich weiß, wie lange jemand für den nächsten Buchstabe braucht. In Python habe ich den Code schon entwickelt.
import time as t
import keyboard
from pynput.keyboard import Key, Listener
import math
import json
chars=['a','b','c','d','e','f','g','h','i','j','k','l','m','n',
'o','p','q','r','s','t','u','v','w','x','y','z']
global password, time, sr
password = []
time = []
Abweichung = 0.3
def Listen():
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
def on_press(key):
global time
if (str(key)[1].lower() in chars) and (len(str(key)) == 3):
password.append(str(key)[1])
time.append(t.time())
def on_release(key):
global time
if key == Key.esc:
time = calc_time(time)
if sr == 0:
return save(password, time)
elif sr == 1:
return encoder(password, time)
def calc_time(time):
shorttime = []
for i in range(len(time)-1):
shorttime.append(time[i+1] - time[i] )
return shorttime
def save(password, time):
file = open("password.txt", "w")
file.writelines(str(password)+"\n")
file.writelines(str(time))
file.close()
print("Password changed!")
return False
def encoder(password, time):
global password_read, time_read
file = open("password.txt", "r")
password_read = str(file.readline())
time_read = str(file.readline())
file.close()
password_read = password_read.replace(" ",'').replace('"','').replace("'",'').replace("[",'').replace("\n",'').replace("]",'').split(',')
time_read = time_read.replace(" ",'').replace('"','').replace("'",'').replace("[",'').replace("\n",'').replace("]",'').split(',')
return False
def compare(p, t, p_r, t_r, abweichung):
if len(p) != len(p_r):
return False
else:
for i in range(len(p)-1):
if p[i] != p_r[i]:
return False
else:
if (t[i] * (1 + abweichung)) >= float(t_r[i]) and (t[i] * (1 - abweichung)) <= float(t_r[i]):
else:
return False
return True
sr = int(input("0: Passw. setzen, 1: Passw. testen\n"))
Listen()
if sr == 1:
if compare(password, time, password_read, time_read, Abweichung) == False:
print("Kein Zugriff")
else:
print("Zugriff gestattet")
Das Problem das ich habe ist: Ich möchte nur die Zeiten des Passworts zurück bekommen, also wenn jemand in das Textfeld Pw schreibt. Hat jemand eine Anregung?