Rumah > masalah biasa > Apakah kaedah penyulitan kata laluan?

Apakah kaedah penyulitan kata laluan?

青灯夜游
Lepaskan: 2022-06-30 16:45:43
asal
35197 orang telah melayarinya

Kaedah penyulitan kata laluan termasuk: 1. Gunakan algoritma penyulitan simetri (seperti 3DES, AES) untuk menyulitkan Menggunakan kaedah penyulitan ini boleh memulihkan kata laluan asal melalui penyahsulitan Sudah tentu, prasyarat adalah anda perlu dapatkan Kunci; 2. Gunakan algoritma HASH sehala (seperti MD5, SHA1) untuk kata laluan, tetapi kata laluan asal tidak boleh dipulihkan melalui pengiraan 3. Gunakan algoritma HASH sehala khas untuk kata laluan; ; 5. Gunakan algoritma BCrypt untuk penyulitan 6. Gunakan algoritma SCrypt untuk penyulitan.

Apakah kaedah penyulitan kata laluan?

Persekitaran pengendalian tutorial ini: sistem windows7, komputer DELL G3

Sebagai pembangun web, kita sering perlu berinteraksi dengan pengguna sistem akaun Cabaran terbesar ialah bagaimana untuk melindungi kata laluan pengguna. Kata laluan adalah perisai terpenting sistem laman web Jika sistem laman web dibandingkan dengan istana, maka kata laluan adalah pintu gerbang. Sentiasa terdapat banyak perdebatan tentang cara menyimpan kata laluan dengan selamat dan algoritma mana yang hendak digunakan: MD5, SHA1, SHA256, PBKDF2, Bcrypt, Scrypt, Argon2, plaintext? ?

7 kaedah penyulitan kata laluan biasa

  Apakah kaedah yang perlu kami gunakan untuk melindungi kata laluan pengguna? Kaedah berikut ialah cara biasa untuk menyimpan kata laluan:

算法 特点 有效破解方式 破解难度 其它
对称加密 可以解密出明文 获取密钥 需要确保密钥不泄露
单向HASH 不可解密 碰撞、彩虹表
特殊HASH 不可解密 碰撞、彩虹表 需要确保“盐”不泄露
Pbkdf2 不可解密 需要设定合理的参数
BCrypt 不可解密 需要设定合理的参数
SCrypt 不可解密 需要设定合理的参数
Argon2 不可解密

1. Gunakan algoritma penyulitan simetri untuk menyimpan

Penggunaan: ★★☆☆☆

Sebagai contoh, algoritma seperti 3DES dan AES boleh disulitkan menggunakan kaedah ini untuk memulihkan kata laluan asal melalui penyahsulitan Sudah tentu, prasyarat adalah untuk mendapatkan kunci. Walau bagaimanapun, memandangkan sejumlah besar maklumat pengguna telah dibocorkan, kunci itu berkemungkinan juga dibocorkan Sudah tentu, data umum dan kunci boleh disimpan dan diurus secara berasingan, tetapi ia juga sangat rumit untuk melindungi kunci sepenuhnya, jadi. ini Bukan dengan cara yang baik.

Penyulitan simetri

Kosongkan teks

Cryptotext

>Penyahsulitan simetri

Cryptotext

Kosongkan teks

2. Gunakan algoritma HASH sehala seperti MD5 dan SHA1 untuk melindungi kata laluan

Penggunaan: ★★★☆☆

 Selepas menggunakan algoritma ini, kata laluan asal tidak boleh dipulihkan melalui pengiraan, dan pelaksanaannya agak mudah, oleh itu, banyak syarikat Internet menggunakan kaedah ini untuk menyimpan kata laluan pengguna. tetapi dengan kemunculan jadual pelangi Dengan peningkatan teknologi, jadual pelangi boleh diwujudkan untuk carian meja dan retak Kaedah ini pada masa ini sangat tidak selamat.

Algoritma HASH

Kosongkan teks

Cryptotext

>Tidak boleh dipulihkan

Cryptotext

Kosongkan teks

3. Algoritma HASH sehala khas

Penggunaan: ★★★☆☆

Kerana The algoritma HASH sehala tidak lagi selamat dalam melindungi kata laluan, jadi sesetengah syarikat telah menambah garam, berbilang HASH dan sambungan lain berdasarkan algoritma HASH sehala Kaedah ini boleh meningkatkan kesukaran untuk meretas pada tahap tertentu tambah "garam tetap" "Algoritma HASH perlu melindungi "garam" daripada bocor, yang akan menghadapi masalah yang sama seperti "melindungi kunci simetri". Sebaik sahaja "garam" bocor, jadual pelangi boleh diwujudkan semula berdasarkan "garam" untuk retak Untuk berbilang HASH , ia hanya meningkatkan masa retak, tetapi tidak meningkatkannya dengan ketara.

Algoritma HASH

Teks Biasa Garam

Cryptotext

>Tidak boleh dipulihkan

Cryptotext

Kosongkan teks

4. PBKDF2

Penggunaan: ★★★★☆

  Prinsip algoritma ini secara kasarnya bersamaan dengan Berdasarkan algoritma HASH, garam rawak ditambah dan berbilang operasi HASH dilakukan Garam rawak meningkatkan kesukaran mencipta jadual pelangi, dan berbilang HASH juga meningkatkan kesukaran mencipta dan memecahkan jadual. Apabila menggunakan algoritma PBKDF2, algoritma HASH biasanya menggunakan sha1 atau sha256 Panjang garam rawak secara amnya tidak boleh kurang daripada 8 bait, dan bilangan masa HASH mestilah sekurang-kurangnya 1,000, supaya keselamatannya cukup tinggi. Proses pengesahan kata laluan menjalankan 1000 operasi HASH, yang mungkin hanya mengambil masa 1ms untuk pelayan, tetapi untuk keropok kos pengiraan meningkat sebanyak 1000 kali, dan sekurang-kurangnya 8 bait garam rawak meningkatkan kesukaran mencipta jadual mengikut N Order of magnitud, menjadikan pemecahan kata laluan berskala besar hampir mustahil Algoritma ini juga disyorkan oleh Institut Piawaian dan Teknologi Kebangsaan.

PBKDF2 telah lama wujud, dan seperti yang dibincangkan dalam artikel sebelum ini, ia agak ketinggalan zaman: mudah untuk melaksanakan selari pada sistem berbilang teras (GPU), yang tidak penting untuk sistem tersuai (FPGA). /ASIC).

Algoritma HASH berbilang        

Random Salt Plaintext

Cryptotext

Tidak boleh dipulihkan

Cryptotext

Kosongkan teks

5. BCrypt

Penggunaan: ★★★ ★☆

BCrypt telah dicipta pada tahun 1999, dan lebih baik daripada PBKDF2 dalam memerangi GPU/ASIC, tetapi saya masih tidak mengesyorkan anda menggunakannya dalam sistem baharu kerana analisis model ancaman retak luar talian Prestasinya adalah tidak cemerlang. Walaupun terdapat beberapa mata wang kripto yang bergantung padanya (iaitu: NUD), ia tidak mendapat banyak populariti dan, oleh itu, tidak ada minat yang mencukupi dalam komuniti FPGA/ASIC untuk membina pelaksanaan perkakasannya. Setelah berkata demikian, Pereka Solar (OpenWall), Malvoni dan Knezovic (University of Zagreb) menulis kertas pada 2014 yang menerangkan sistem monolitik menggunakan ARM/FPGA hibrid untuk menyerang algoritma ini.

6 Skript

Penggunaan: ★★★★☆

Skript hari ini ialah pilihan yang lebih baik: direka lebih baik daripada BCrypt (terutamanya mengenai ingatan) dan telah bekerja dalam bidang ini selama 10 tahun. Sebaliknya, ia juga digunakan dalam banyak mata wang kripto, dan kami mempunyai beberapa perkakasan (termasuk FPGA dan ASIC) yang boleh melaksanakannya. Walaupun ia digunakan khusus untuk perlombongan, ia juga boleh digunakan semula untuk retak.

7 Argon2

Penggunaan: ★★★★★

Argon2 adalah berdasarkan Pelaksanaan AES, pemproses x64 dan ARM moden telah melaksanakannya dalam sambungan set arahan, sekali gus mengurangkan jurang prestasi antara sistem biasa dan sistem penyerang,

  Argon2 mempunyai tiga versi utama:

  • Argon2i ialah pilihan paling selamat terhadap serangan saluran sisi, Argon2i menggunakan akses memori data-agnostik, yang merupakan kaedah pilihan untuk pencincangan kata laluan, Argon2i membuat lebih banyak hantaran ke atas memori untuk mengelakkan serangan tukar ganti.
  • Argon2d ialah pilihan paling selamat terhadap serangan pemecahan GPU dan Argon2 memenangi pertandingan pencincangan kata laluan pada Julai 2015. Argon2d menggunakan akses memori yang bergantung kepada data, yang menjadikannya sangat sesuai untuk mata wang kripto dan aplikasi bukti kerja tanpa ancaman serangan pemasaan saluran sisi.
  • Argon2id bertindak sebagai Argon2i untuk separuh pertama lelaran pertama memori dan Argon2d untuk bakinya. Oleh itu, berdasarkan keseimbangan masa dan ruang, ia bukan sahaja menyediakan perlindungan serangan saluran sisi tetapi juga menjimatkan overhed kekerasan.

  Jika anda bimbang tentang serangan saluran sisi (contohnya: pemuatan cache data berniat jahat/kelemahan hantu, yang membolehkan membaca data memori peribadi proses lain yang sedang berjalan pada perkakasan yang sama melalui cache- saluran sisi berasaskan), Anda harus menggunakan Argon2i, jika tidak gunakan Argon2d. Jika anda tidak pasti atau anda selesa dengan pendekatan hibrid, anda boleh menggunakan Argon2id untuk mendapatkan yang terbaik daripada kedua-dua dunia.

  Kod sumber tersedia di Github, ditulis dalam C serasi C89, dilesenkan di bawah lesen Creative Commons dan dikompil pada kebanyakan perkakasan seni bina ARM, x86 dan x64.

Peringatan hangat:

Selepas 2019, pakar yang berkaitan telah mencadangkan untuk tidak menggunakan PBKDF2 atau BCrypt, dan dengan tegas mengesyorkan Argon2 (sebaik-baiknya Argon2id) untuk sistem terkini. Scrypt ialah pilihan terbaik apabila Argon2 tidak tersedia, tetapi perlu diingat bahawa ia mempunyai isu yang sama dengan kebocoran saluran sisi.

Untuk lebih banyak pengetahuan berkaitan, sila lawati ruangan Soalan Lazim!

Atas ialah kandungan terperinci Apakah kaedah penyulitan kata laluan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan