Gerenciador de senhas
Publicado por M4iir1c10 (última atualização em 03/05/2020)
[ Hits: 4.938 ]
Homepage: https://github.com/mauricioph
Use para criar e guardar senhas diversas:
vs = ver senha
cs = criar senha
s = sair
Este script vai criar um banco de dados sqlite e vai criar e guardar suas senhas de forma encriptada. Se alguém conseguir pegar sua base de dados e tentar ler vai ver entradas assim:
sqlite> SELECT * FROM KEYS;
d2a8116004294b7603acbea8fc372b9cdee3d7e9950d1efadd4fc0b0bb07eff4
43b05ba3a81c28de854d5f2ef8382535a7981f8cfd32654882c4b3232bef7e9f
1919b015f7a3563d194e01d3b06023a8de8fe94e6263f459df97dd303989bca0
#!/usr/bin/env python
# caso seu ambiente não tenha o python3 apague a linha acima e chame o python3 antes do script.
# não vai funcionar no pyhton 2.x
import sqlite3
from hashlib import sha256
# Entre a sua senha aqui.
# Atenção essa senha, além de dar acesso a base de dados sera a chave de encriptação da mesma base de dados.
# modificando esta senha toda informação na base de dados não vai ser correta, somente se a senha original for restaurada neste campo.
# voce tera a informacao original.
ADMIN_PASSWORD = "minhasenhacabulosa"
connect = input("Entre senha administrativa\n")
while connect != ADMIN_PASSWORD:
print ('Senha incorreta.\nTente outra vez.')
connect = input("Entre senha administrativa\n")
if connect == "q":
break
conn = sqlite3.connect('gerenciador_senhas.db')
def create_password(pass_key, service, admin_pass):
return sha256(admin_pass.encode('utf-8') + service.lower().encode('utf-8') + pass_key.encode('utf-8')).hexdigest()[:15]
def get_hex_key(admin_pass, service):
return sha256(admin_pass.encode('utf-8') + service.lower().encode('utf-8')).hexdigest()
def get_password(admin_pass, service):
secret_key = get_hex_key(admin_pass, service)
cursor = conn.execute("SELECT * from KEYS WHERE PASS_KEY=" + '"' + secret_key + '"')
file_string = ""
for row in cursor:
file_string = row[0]
return create_password(file_string, service, admin_pass)
def add_password(service, admin_pass):
secret_key = get_hex_key(admin_pass, service)
command = 'INSERT INTO KEYS (PASS_KEY) VALUES (%s);' %('"' + secret_key +'"')
conn.execute(command)
conn.commit()
return create_password(secret_key, service, admin_pass)
if connect == ADMIN_PASSWORD:
try:
conn.execute('''CREATE TABLE KEYS
(PASS_KEY TEXT PRIMARY KEY NOT NULL);''')
print("Sua base de dados foi criada!\nQual senha você gostaria de guardar agora?")
except:
print("Você já tem uma base de dados, oque você gostaria de fazer?")
while True:
print("\n"+ "*"*15)
print("Comandos:")
print("s = sair do programa")
print("vs = ver senha")
print("cs = criar uma senha")
print("*"*15)
input_ = input(":")
if input_ == "s":
break
if input_ == "cs":
service = input("Essa senha vai ser para qual serviço ou website?\n")
print("\n" + service.capitalize() + " senha criada:\n" + add_password(service, ADMIN_PASSWORD))
if input_ == "vs":
service = input("Qual o nome do website/serviço?\n")
print("\n" + service.capitalize() + " senha:\n"+get_password(ADMIN_PASSWORD, service))
Simples script para atrasar/adiantar legendas
Nenhum comentário foi encontrado.
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Script de montagem de chroot automatica
Eaí? Já programou no windows? (2)
Erro ao enviar arquivos para o Storage Synology NAS (0)
Instalar Dual Boot, Linux+Windows. (6)
Conky, alerta de temperatura alta (17)
De volta para o futuro - ou melhor, para o presente (parte 2) (3)









