2023-09-11 20:30:47 +00:00
|
|
|
from hashlib import sha256
|
|
|
|
import localtoken
|
|
|
|
|
2023-09-06 20:01:35 +00:00
|
|
|
'''
|
|
|
|
Quando acessado usa o mesmo algoritmo gerador de senhas anterior. Mas em instância separada.
|
|
|
|
A lista de senha gerada será a mesma nas duas partes, apesar de estarem em aplicativos separados e sem comunicação.
|
|
|
|
Verifica o usuário e se senha digitada esta na lista gerada e não foi usada e nem invalidada.
|
|
|
|
nesta caso apresenta “Chave válida”.
|
|
|
|
Atenção:
|
|
|
|
As senhas devem ter validade de no máximo um minuto e só podem ser usadas uma única vez.
|
|
|
|
Senhas são geradas a partir de outras senhas, e se for usada uma chave todas as chaves geradas pela mesma devem ser invalidadas.
|
|
|
|
Se o cliente digitar uma senha válida o servidor aceita, caso contrario retorna mensagem de erro.
|
|
|
|
|
2023-09-11 20:30:47 +00:00
|
|
|
'''
|
|
|
|
|
|
|
|
SALT = ''
|
|
|
|
PASSWORD = ''
|
|
|
|
|
|
|
|
def main():
|
|
|
|
print('Servidor!')
|
|
|
|
SALT = sha256(input('Digite o salt: ').encode('utf-8')).hexdigest()
|
|
|
|
PASSWORD = sha256(input('Digite a senha: ').encode('utf-8')).hexdigest()
|
|
|
|
|
|
|
|
while True:
|
|
|
|
token = input('Digite o token: ')
|
|
|
|
if localtoken.generate_token(PASSWORD, SALT)[:8] == token[:8]:
|
|
|
|
print('Chave válida!')
|
|
|
|
else:
|
|
|
|
print('Chave inválida!')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|