Eu tenho tantos segredos e nenhum lugar para guardá-los!
O objetivo é simples: escreva um programa que permita salvar uma string e protegê-la por uma senha.
O programa terá um alias, senha e segredo (opcional) como parâmetros.
Se é a primeira vez que o programa é chamado com um determinado alias, ele armazena / lembra o segredo e gera o que quiser.
Se o programa for chamado com um alias que já foi usado anteriormente, ele emitirá o segredo para esse alias se a senha for a mesma da primeira vez que o programa foi executado com esse alias.
Outros casos
Se for a primeira vez que é chamado com um certo apelido e nenhum segredo é dado - não armazene nada.
Se o programa for chamado com um alias que tenha sido usado e a senha estiver incorreta - retorne qualquer tipo de erro ou nada.
Se o programa for chamado com um alias que foi usado, a senha está correta e um novo segredo é fornecido - envie o segredo antigo e substitua-o pelo novo, para que, da próxima vez, apenas o novo segredo seja produzido.
Se o programa for chamado com um alias que foi usado, a senha está correta e nenhum novo segredo é fornecido - produza o antigo segredo e verifique se ele não foi substituído.
Nota: Esses segredos / senhas não precisam ser armazenados com segurança
Observe também: qualquer entrada alfanumérica para senhas e segredos de aliases deve ser aceita
Aplicam-se regras padrão, boa sorte!
Respostas:
JavaScript (ES6),
6050 bytesEconomizei 10 bytes graças a @JonasWilms !
Aceita entrada como
(alias,password,secret)
ou(alias,password)
. Retorna indefinido na primeira vez que um segredo é armazenado ou falso se a senha estiver incorreta.Experimente um 1º caso de teste online!
Experimente um segundo caso de teste online!
Quão?
Definimos uma função nomeada cujo objeto subjacente também é usado para armazenar as senhas e os segredos.f
Comentado
fonte
p&&
seja necessário. Então, isso é mais -3 bytes.Python 2 ,
9493 bytesExperimente online!
Pela primeira vez, o estranho parâmetro dict padrão do Python funciona a meu favor ...
fonte
Ruby , 64 bytes
Cria um hash para aliases em um único par de chaves de
password => secret
. Provavelmente poderia ser mais elegante.Experimente online!
fonte
Wolfram Language (Mathematica) , 34 bytes
Experimente online!
fonte
C # (Compilador interativo do Visual C #) ,
140138134 bytes-2 bytes graças a @Expired Data
Experimente online!
fonte
P
não precisa serdynamic
agoraPython 2 , 77 bytes
Experimente online!
Semelhante ao método de Chas Brown .
fonte