No heu de mantenir mai una contrasenya en text sense format mentre confirmeu un usuari o feu alguna cosa semblant.
Com que moltes persones utilitzen la mateixa contrasenya, si un atacant descobreix una base de dades de contrasenyes no xifrades, es poden utilitzar fàcilment juntament amb correus electrònics coincidents per entrar al lloc web o compte enllaçat i fins i tot utilitzar-los per intentar accedir a altres comptes.
Les contrasenyes sovint es triguen avui en dia quan se'n proporciona una. Es recomana pixar amb sal i mantenir la sal juntament amb la contrasenya hash.
La salaó pot semblar un dels passos d'una recepta de hash browns, però en criptografia es refereix a afegir dades aleatòries a l'entrada d'una funció hash per assegurar-se que el hash sempre proporcionarà un resultat únic encara que les entrades siguin idèntiques.
Com a resultat, el distintiu hash creat afegint la sal ens pot defensar de diversos mètodes d'atac, inclosos els assalts de taula hash, alhora que sufoca els intents de diccionari i força bruta fora de línia.
Aquí, amb l'ajuda de fragments de codi, demostrarem com utilitzar "bcrypt" per protegir les vostres contrasenyes.
Aleshores, què és 'bcrypt'?
Bcrypt és una biblioteca hashing que admet diversos idiomes i proporciona un xifratge especial de contrasenyes. Per augmentar la seguretat de la vostra contrasenya, produeix automàticament caràcters aleatoris addicionals (sal) en xifrar la vostra cadena.
També podeu escollir definir quants caràcters addicionals voleu afegir a una cadena entrant.
La biblioteca bcrypt només llegeix codi de bytes, no cadenes en brut. Per tant, abans d'enviar una cadena de contrasenya entrant a bcrypt per a l'encriptació, primer heu de codificar-la.
Xifrar i codificar no són el mateix. Només s'assegura que una cadena sigui llegible per màquina abans de ser coberta per una tècnica de xifratge.
Ús de bcrypt per xifrar una contrasenya a Python
Python facilita el xifratge de contrasenyes bcrypt. Ens concentrarem a fer-ho sense l'ajuda d'un marc. Però no us preocupeu, si enteneu com desar les entrades dels usuaris i llegir-les des de la base de dades, el procediment és el mateix als frameworks.
instal·lació
Només heu de configurar un entorn virtual de Python i, a continuació, utilitzar un IDE com PyCharm. La biblioteca s'ha d'instal·lar primer:
Contrasenya de xifrat
Vegem com utilitzar bcrypt per xifrar un text després d'haver-lo instal·lat:
El codi Python esmentat anteriorment executa i genera una cadena de bytes xifrada. Però cada vegada que executeu l'script, el resultat és diferent. Bcrypt utilitza aquest mètode per assegurar-se que cada usuari té una contrasenya que està específicament xifrada.
Això, per cert, és per al xifratge de contrasenyes.
Comparació i confirmació de contrasenyes mitjançant Bcrypt
Què passa si voleu desar la contrasenya hash i comprovar més tard si coincideix amb la contrasenya que un usuari va enviar per a l'autenticació?
Això és senzill. Només s'ha de comparar la contrasenya d'autenticació amb l'entrada de la base de dades (o a la memòria en aquest cas).
La contrasenya d'autenticació també s'ha de codificar abans de comparar-la amb la de la base de dades perquè bcrypt només pot llegir cadenes de bytes. Bàsicament, comparareu una entrada d'autenticació codificada amb la contrasenya codificada hash que teniu actualment a la vostra base de dades.
Provem-ho fent servir entrades de Python fictícias:
En executar el codi esmentat anteriorment, se us demanarà una nova contrasenya. Python ho guarda a la memòria. A la secció d'autenticació, introduïu la mateixa contrasenya, que és privada per a vosaltres.
Si es compara la contrasenya amb la que s'ha xifrat prèviament i ha desat la coincidència, Python emet un missatge d'èxit.
Si no, s'imprimeix el missatge d'error i després s'afegeix la frase else.
La idea fonamental és idèntica a la de registrar-se i després proporcionar una contrasenya a una base de dades per a l'autenticació.
Conclusió
Tot i que simplement hem utilitzat contrasenyes xifrades per mostrar com funciona bcrypt a la memòria curta de Python, la seva aplicabilitat real rau en les aplicacions de base d'usuaris.
No obstant això, aquest article mostra els mètodes essencials per organitzar el codi per aconseguir-ho, fins i tot en circumstàncies del món real.
Per exemple, si utilitzeu Flask, podeu proporcionar els camps de registre i autenticació mitjançant formularis web separats en lloc d'entrades.
Per descomptat, mentre compareu les contrasenyes, llegireu una base de dades que conté contrasenyes xifrades que es guarden al món real.
Jona Nitsch
Gràcies per aquesta senzilla i senzilla explicació,
Això m'ha ajudat molt en el meu projecte actual.
Crec que és molt bo que el codi d'exemple estigui limitat al mínim i no sobrecarregat com tantes altres explicacions.
Salutacions cordials