Saya punya begitu banyak rahasia dan tidak punya tempat untuk menyimpannya!
Tujuannya sederhana: menulis sebuah program yang memungkinkan Anda menyimpan string dan membuatnya dilindungi oleh kata sandi.
Program akan menggunakan alias, kata sandi, dan rahasia (opsional) sebagai parameter.
Jika ini adalah pertama kalinya program dipanggil dengan alias yang diberikan, maka ia akan menyimpan / mengingat rahasia, dan menampilkan apa pun yang Anda inginkan.
Jika program dipanggil dengan alias yang telah digunakan sebelumnya, maka itu akan menampilkan rahasia untuk alias itu jika kata sandinya sama dengan pertama kali program dijalankan dengan alias itu.
Kasus lainnya
Jika ini pertama kalinya dipanggil dengan alias tertentu dan tidak ada rahasia yang diberikan - simpan apa pun.
Jika program dipanggil dengan alias yang telah digunakan, dan kata sandi salah - kembalikan segala jenis kesalahan atau tidak ada sama sekali.
Jika program dipanggil dengan alias yang telah digunakan, kata sandi sudah benar dan rahasia baru diberikan - output rahasia lama dan ganti dengan yang baru sehingga lain kali hanya rahasia baru yang dihasilkan.
Jika program dipanggil dengan alias yang telah digunakan, kata sandinya benar dan tidak ada rahasia baru yang diberikan - output rahasia lama dan pastikan tidak diganti.
Catatan: Rahasia / kata sandi ini tidak perlu disimpan dengan aman
Perhatikan juga: masukan alfanumerik apa pun untuk kata sandi dan rahasia alias harus diterima
Aturan standar berlaku, semoga berhasil!
Jawaban:
JavaScript (ES6),
6050 byteDisimpan 10 byte berkat @JonasWilms !
Mengambil input sebagai salah satu
(alias,password,secret)
atau(alias,password)
. Pengembalian tidak terdefinisi saat rahasia pertama kali disimpan, atau salah jika kata sandi salah.Coba test case 1 online!
Coba test case ke-2 secara online!
Bagaimana?
Berkomentar
sumber
p&&
diperlukan. Jadi, itu -3 byte lagi.Python 2 ,
9493 byteCobalah online!
Untuk sekali ini, parameter dict default aneh Python bekerja dalam hati saya ...
sumber
Ruby , 64 byte
Membangun hash untuk alias ke sepasang kunci tunggal
password => secret
. Mungkin bisa lebih elegan.Cobalah online!
sumber
Bahasa Wolfram (Mathematica) , 34 byte
Cobalah online!
sumber
C # (Visual C # Interactive Compiler) ,
140138134 byte-2 byte berkat @Expired Data
Cobalah online!
sumber
P
tidak harusdynamic
sekarangPython 2 , 77 byte
Cobalah online!
Mirip dengan metode Chas Brown .
sumber