Sto lavorando a un semplice strumento di crittografia dei file.
Fondamentalmente, ecco come funziona il mio programma:
password = get_user_typed_password()
salt = uuid4()
key = bcrypt(password + salt)
cipher = AES(key)
for block in input_file:
output_file.write(AES.encrypt(block))
La mia domanda riguarda "come potrei rendere una password possibilmente breve e debole una lunga e strong?".
Ho pensato che avrei potuto utilizzare una concatenazione dell'hash con sha512, in questo modo:
for i from 1 to 1000:
password += sha512(password).digest()
Alla fine, avrei una password lunga 64000 con caratteri 'ANSII alti' come questi: ☼ ¢ ♣ ┌ ¥ ↕ ▼ ║ÅÕ¼ ■ ♫.
Pensi che sia una buona idea allungare la password fornita in questo modo? Ricorda che non sarà memorizzato in un db.
So che inventare il tuo meccanismo è sbagliato, ma qui, è solo per rendere la password più lunga / più strong ... la chiave finale sarà key = bcrypt (long_password + salt) comunque.
Con questa domanda, volevo chiederne una che non ho trovato qui: "La concatenazione hash è dannosa per la generazione di una chiave ... ma per quanto riguarda l'estensione della password?"
Grazie in anticipo per le tue risposte, spiegazioni e critiche (sono un novizio in crypto)!