Ich habe so viele Geheimnisse und kann sie nirgendwo aufbewahren!
Das Ziel ist einfach: Schreiben Sie ein Programm, mit dem Sie eine Zeichenfolge speichern und durch ein Kennwort schützen können.
Das Programm verwendet einen Alias, ein Passwort und ein (optionales) Geheimnis als Parameter.
Wenn das Programm zum ersten Mal mit einem bestimmten Alias aufgerufen wird, speichert / speichert es das Geheimnis und gibt alles aus, was Sie wollen.
Wenn das Programm mit einem zuvor verwendeten Alias aufgerufen wird, wird das Geheimnis für diesen Alias ausgegeben, wenn das Kennwort mit dem Kennwort übereinstimmt, mit dem das Programm zum ersten Mal ausgeführt wurde.
Andere Fälle
Wenn es das erste Mal ist, dass es mit einem bestimmten Alias aufgerufen wird und kein Geheimnis bekannt ist, speichern Sie nichts.
Wenn das Programm mit einem verwendeten Alias aufgerufen wird und das Kennwort falsch ist, wird ein Fehler oder gar nichts zurückgegeben.
Wenn das Programm mit einem verwendeten Alias aufgerufen wird, ist das Passwort korrekt und es wird ein neues Geheimnis angegeben - geben Sie das alte Geheimnis aus und ersetzen Sie es durch das neue, damit beim nächsten Mal nur das neue Geheimnis ausgegeben wird.
Wenn das Programm mit einem verwendeten Alias aufgerufen wird, ist das Kennwort korrekt und es wird kein neues Geheimnis angegeben. Geben Sie das alte Geheimnis aus und stellen Sie sicher, dass es nicht ersetzt wird.
Hinweis: Diese Geheimnisse / Passwörter müssen nicht sicher gespeichert werden
Beachten Sie auch, dass alle alphanumerischen Eingaben für Aliase, Passwörter und Geheimnisse akzeptiert werden sollten
Es gelten die üblichen Regeln, viel Glück!
Antworten:
JavaScript (ES6),
60 bis50 Byte10 Bytes gespart dank @JonasWilms !
Nimmt die Eingabe als entweder
(alias,password,secret)
oder(alias,password)
. Gibt undefiniert zurück , wenn ein Geheimnis zum ersten Mal gespeichert wird, oder falsch, wenn das Passwort falsch ist.Probieren Sie einen ersten Testfall online aus!
Probieren Sie einen zweiten Testfall online aus!
Wie?
Wir definieren eine benannte Funktionf , deren zugrunde liegende Aufgabe wird auch die Passwörter zu speichern , verwendet und die Geheimnisse.
Kommentiert
quelle
p&&
erforderlich ist. Das sind also noch mal -3 Bytes.Python 2 ,
9493 BytesProbieren Sie es online!
Ausnahmsweise funktioniert Pythons seltsamer Standard-Dikt-Parameter zu meinen Gunsten ...
quelle
Ruby , 64 Bytes
Erstellt einen Hash für Aliase für ein einzelnes Schlüsselpaar von
password => secret
. Wahrscheinlich könnte eleganter sein.Probieren Sie es online!
quelle
Wolfram Language (Mathematica) , 34 Byte
Probieren Sie es online!
quelle
C # (Visual C # Interactive Compiler) ,
140138134 Byte-2 Bytes dank @Expired Data
Probieren Sie es online!
quelle
P
esdynamic
jetzt nicht sein mussPython 2 , 77 Bytes
Probieren Sie es online!
Ähnlich wie bei Chas Brown .
quelle