Banyak artikel telah ditulis tentang topik kata sandi baik di HabrΓ© maupun di Internet. Anehnya, sejauh ini tidak ada yang menjelaskan cara lain yang saya gunakan, yang akan tampak jelas.
Segera saya ingin mencatat bahwa saya tidak menggunakan ponsel cerdas, jadi semua jenis pengelola kata sandi pada telepon tombol tidak tersedia untuk saya.
Awalnya, seperti kebanyakan pengguna, saya memiliki 1-2 kata sandi yang saya masukkan untuk semua situs. Tidak ada gunanya menulis tentang kekurangan metode ini, ada banyak sekali. Seiring waktu, menjadi jelas bahwa pendekatan ini harus diubah. Tidak nyaman menggunakan generator kata sandi kompleks di situs pihak ketiga, karena setelah pembuatan kata sandi ini dilupakan dan setelah berakhirnya sesi perlu untuk mengubahnya. Di satu sisi, ini bagus, karena memaksa kita untuk terus-menerus mengubah kata sandi, sehingga sulit untuk menemukannya. Tetapi ada situs di mana sesi berakhir hanya dalam sehari, dan mengubahnya mulai mengganggu.
Kualitas apa yang harus dimiliki kata sandi agar sesuai dengan kondisi kita dan juga memenuhi kondisi situs?
Jadilah unik untuk setiap situs
Memiliki satu set huruf dari kasus yang berbeda, angka dan karakter khusus
Mampu mematuhi kebijakan situs, di mana perubahan terjadi setiap N bulan sekali
Hal pertama yang muncul di benak saya adalah menggunakan hash situs dan aturan khusus. Saya mengambil md5 sebagai dasar, karena generator md5 tersedia baik online maupun sebagai aplikasi untuk seluler.
Selanjutnya, aturan dasar untuk membuat kata sandi dibuat, yang digunakan untuk semua situs.
Inti dari aturannya adalah sebagai berikut - untuk menghasilkan kata sandi, kami mengambil string login@site.com. Selanjutnya kita ambil karakter N pertama/terakhir tergantung kerumitan passwordnya. Untuk sebagian besar situs, kata sandi 10 karakter sudah cukup. Ternyata string itu sudah berisi kumpulan angka dan huruf yang kompleks. Kata sandi yang dihasilkan sudah jauh lebih rumit dari yang biasa, tetapi masih mungkin untuk menebaknya. Plus, sebagian besar situs memerlukan karakter dan huruf khusus dalam kasus yang berbeda untuk ada dalam kata sandi. Untuk melakukan ini, kami akan membuat dan memperkenalkan aturan yang umum untuk semua kata sandi.
, 2, 1 ( 10, 9 + 2 1, 9 + 1 0). , , . , , .
, :
noroots@habr.com = c05184b3af6965b29f15571556a4cccd
10 , c05184b3af
2, 1 c25284b3af
, , C25284b3af#
C25284b3af#, .
, , , .
Sekarang tentang pengecualian. Terkadang hash hanya berisi angka, atau hanya satu huruf dan kami tidak dapat memenuhi persyaratan untuk huruf dengan kasus yang berbeda. Untuk melakukan ini, Anda cukup menambah panjang string dari 10 menjadi 15, atau menggunakan aturan yang lebih fleksibel bahwa kami tidak mengambil karakter N, tetapi string yang lebih panjang dari N karakter dan menyertakan setidaknya 2 huruf. Juga, beberapa situs memerlukan perubahan kata sandi secara berkala (misalnya, situs perbankan atau google). Solusinya sederhana - kami menambahkan tahun dan kuartal (bulan, setengah tahun, tergantung pada frekuensi perubahan) ke baris login@site.com, yang akan memungkinkan kami, sekali lagi, untuk selalu memiliki pembaruan password dan kemampuan untuk mengembalikannya ke dalam memori.