J'ai tellement de secrets et nulle part où les garder!
Le but est simple: écrire un programme qui vous permet d'enregistrer une chaîne et de la faire protéger par un mot de passe.
Le programme prendra comme paramètres un alias, un mot de passe et un secret (facultatif).
Si c'est la première fois que le programme est appelé avec un alias donné, il stockera / se souviendra du secret et affichera tout ce que vous voulez.
Si le programme est appelé avec un alias qui a été utilisé auparavant, il affichera le secret de cet alias si le mot de passe est le même que la première fois que le programme a été exécuté avec cet alias.
Autres cas
Si c'est la première fois que vous êtes appelé avec un certain alias et qu'aucun secret n'est donné - ne stockez rien.
Si le programme est appelé avec un alias qui a été utilisé et que le mot de passe est incorrect - renvoyez tout type d'erreur ou rien du tout.
Si le programme est appelé avec un alias qui a été utilisé, le mot de passe est correct et un nouveau secret est fourni - sortez l'ancien secret et remplacez-le par le nouveau afin que la prochaine fois seul le nouveau secret soit sorti.
Si le programme est appelé avec un alias qui a été utilisé, le mot de passe est correct et aucun nouveau secret n'est fourni - sortez l'ancien secret et assurez-vous qu'il n'est pas remplacé.
Remarque: ces secrets / mots de passe n'ont pas besoin d'être stockés en toute sécurité
Notez également: toute entrée alphanumérique pour les mots de passe et secrets d'alias doit être acceptée
Les règles standard s'appliquent, bonne chance!
Réponses:
JavaScript (ES6),
6050 octets10 octets enregistrés grâce à @JonasWilms !
Prend l'entrée en tant que
(alias,password,secret)
ou(alias,password)
. Renvoie undefined la première fois qu'un secret est stocké, ou false si le mot de passe est incorrect.Essayez un 1er cas de test en ligne!
Essayez un 2ème cas de test en ligne!
Comment?
Commenté
la source
p&&
est nécessaire. Donc, c'est un autre -3 octets.Python 2 ,
9493 octetsEssayez-le en ligne!
Pour une fois, l'étrange paramètre dict par défaut de Python fonctionne en ma faveur ...
la source
Ruby , 64 octets
Construit un hachage pour les alias d'une seule paire de clés de
password => secret
. Cela pourrait probablement être plus élégant.Essayez-le en ligne!
la source
Wolfram Language (Mathematica) , 34 octets
Essayez-le en ligne!
la source
C # (Visual C # Interactive Compiler) ,
140138134 octets-2 octets grâce à @Expired Data
Essayez-le en ligne!
la source
P
n'est pas nécessaire de le fairedynamic
maintenantPython 2 , 77 octets
Essayez-le en ligne!
Similaire à la méthode de Chas Brown .
la source