Jadual Kandungan
1. Apakah algoritma hash
2. Senario penggunaan algoritma cincang
2.1 Penyulitan selamat
2.2 Bendera unik
Dalam protokol muat turun P2P, kami akan memuat turun bahagian berlainan filem yang sama daripada mesin yang berbeza, dan kemudian memasang filem itu pada mesin kami sendiri. Jika terdapat ralat dalam proses memuat turun sesetengah bahagian filem atau kandungan diganggu, ia boleh menyebabkan ralat memuat turun atau virus.
Senario ini telah diperkenalkan sebelum ini apabila kita bercakap tentang jadual cincang. Dalam senario ini, keperluan untuk Ciri 1 tidak terlalu tinggi Keperluan untuk Ciri 2 ialah nilai cincang hendaklah diedarkan sekata yang mungkin juga boleh menerima konflik pada tahap tertentu, yang boleh diselesaikan dengan menggunakan kaedah pengalamatan terbuka dan kaedah zipper Ciri 4 lebih menuntut dan perlu mengejar prestasi.
Terdapat banyak algoritma pengimbangan beban, seperti pengundian, rawak, undian berwajaran, dll., tetapi matlamatnya adalah untuk melaksanakan algoritma pengimbangan beban melekit sesi, iaitu, yang sama Semua permintaan klien semasa sesi dihalakan ke pelayan yang sama.
Apabila kita perlu memproses data besar-besaran, pelayan tunggal tidak boleh memuatkan dan mengira data besar-besaran tersebut, maka kita perlu mengagihkan data besar-besaran secara sama rata kepada pelayan N Pelayan melakukan selari pengkomputeran. Bagaimana untuk mengagihkan data secara sama rata ke pelayan N?
2.7 Storan Teragih
3 Ringkasan
Rumah Peranti teknologi AI Fahami algoritma Hash dan senario aplikasi dalam satu artikel

Fahami algoritma Hash dan senario aplikasi dalam satu artikel

Apr 13, 2023 am 11:55 AM
Algoritma hash fail besar hash

1. Apakah algoritma hash

Kedua-dua cincang dan cincang berasal daripada perkataan cincang, yang pertama ialah transliterasi dan yang kedua ialah terjemahan percuma. Ia adalah algoritma yang boleh memetakan nilai perduaan sebarang panjang ke dalam nilai perduaan panjang tetap Nilai perduaan panjang tetap dipetakan dipanggil nilai cincang. Algoritma cincang yang sangat baik perlu memenuhi keperluan berikut:

tidak boleh menyimpulkan secara terbalik data asal daripada nilai cincang;

sangat sensitif kepada data input dan bit yang berbeza akan menyebabkan pencincangan. Nilai cincang sangat berbeza;

Kebarangkalian perlanggaran cincang mestilah sangat kecil;

Proses pengiraan algoritma cincang mestilah cukup mudah dan cekap, walaupun data asal adalah sangat panjang, cincang boleh diperoleh dengan cepat Nilai cincang;

2. Senario penggunaan algoritma cincang

2.1 Penyulitan selamat

Algoritma penyulitan cincang yang lebih biasa ialah MD5 ( Algoritma Message-Digest MD5, algoritma Digest mesej MD5) dan SHA (Algoritma Hash Selamat, algoritma cincang selamat).

Kata laluan teks biasa tidak boleh disimpulkan daripada teks sifir nilai cincang, dan kebarangkalian konflik cincang adalah agak kecil. Kedua-dua titik ini memastikan kebolehpercayaan algoritma cincang sebagai kaedah penyulitan yang selamat.

Mengapakah algoritma pencincangan tidak dapat mengelakkan perlanggaran cincang sepenuhnya, tetapi hanya boleh meminimumkannya?

Prinsip sarang merpati memberitahu kita bahawa jika 11 merpati terbang ke dalam 10 sangkar merpati, maka mesti ada 2 atau lebih merpati dalam satu sangkar merpati. Kemudian nilai cincang adalah panjang tetap, yang menentukan bahawa nilai cincang boleh habis, tetapi secara teorinya data asal adalah tidak terhingga, jadi mungkin menyebabkan konflik cincang.

Senario aplikasi ini menggunakan ciri 1 dan 3 algoritma cincang, di mana 3 daripadanya memastikan kata laluan sangat sukar untuk dipecahkan ke arah hadapan (mengambil MD5 sebagai contoh, panjang nilai cincang ialah 128 bit , dan terdapat 2 ^128 cincang berbeza, sangat sukar untuk dipecahkan).

Tiada keselamatan mutlak dalam medan keselamatan Walaupun MD5 sukar dipecahkan, masih ada cara untuk memecahkannya Contohnya, menggunakan padanan jadual pelangi boleh memecahkan kata laluan biasa.

Jadi secara amnya kami akan menggunakan algoritma cincang masin untuk penyulitan selamat Kaedah pengasinan perlu dirahsiakan, yang meningkatkan kesukaran dan kos retak.

2.2 Bendera unik

Apabila kami mengesahkan sama ada dua fail adalah sama, kami tidak boleh menilai berdasarkan nama fail sahaja. Kerana kewujudan fail dengan nama yang sama adalah terlalu biasa.

Kami boleh mengambil beberapa data perduaan daripada fail besar mengikut peraturan tertentu dan menggunakan algoritma cincang untuk mendapatkan nilai cincang sebagai pengecam unik fail. Dengan cara ini, fail yang sama mesti mempunyai nilai cincang yang sama, iaitu, pengecam unik yang sama mempunyai kebarangkalian tinggi untuk mempunyai pengecam unik yang berbeza dengan nilai cincang yang berbeza; nilai hash Jika terdapat konflik lajur, kita boleh membandingkan semua data binari kedua-dua fail secara terperinci untuk menentukan sama ada ia adalah fail yang sama Kebarangkalian peristiwa ini berlaku adalah terlalu kecil. Walau bagaimanapun, penyelesaian ini memastikan kecekapan dan kebolehpercayaan.

Senario aplikasi ini menggunakan ciri 2 dan 3 algoritma cincang.

2.3 Pengesahan Data

Dalam protokol muat turun P2P, kami akan memuat turun bahagian berlainan filem yang sama daripada mesin yang berbeza, dan kemudian memasang filem itu pada mesin kami sendiri. Jika terdapat ralat dalam proses memuat turun sesetengah bahagian filem atau kandungan diganggu, ia boleh menyebabkan ralat memuat turun atau virus.

Oleh itu, kami terlebih dahulu mencincang semua bahagian dan menyimpannya dalam fail benih. Selepas semua bahagian dimuat turun, kami mencincang semua bahagian untuk mendapatkan nilai cincang, dan kemudian membandingkannya dengan bahagian dalam fail benih untuk mengesahkan sama ada fail itu lengkap.

Senario aplikasi ini menggunakan ciri 2 dan 4 algoritma cincang.

2.4 Fungsi cincang

Senario ini telah diperkenalkan sebelum ini apabila kita bercakap tentang jadual cincang. Dalam senario ini, keperluan untuk Ciri 1 tidak terlalu tinggi Keperluan untuk Ciri 2 ialah nilai cincang hendaklah diedarkan sekata yang mungkin juga boleh menerima konflik pada tahap tertentu, yang boleh diselesaikan dengan menggunakan kaedah pengalamatan terbuka dan kaedah zipper Ciri 4 lebih menuntut dan perlu mengejar prestasi.

2.5 Pengimbangan Beban

Terdapat banyak algoritma pengimbangan beban, seperti pengundian, rawak, undian berwajaran, dll., tetapi matlamatnya adalah untuk melaksanakan algoritma pengimbangan beban melekit sesi, iaitu, yang sama Semua permintaan klien semasa sesi dihalakan ke pelayan yang sama.

Kami boleh mencincang IP atau ID sesi pelanggan, dan melakukan operasi modulo pada nilai cincang dan bilangan pelayan Nilai akhir ialah pelayan yang memerlukan penghalaan, supaya kemelekatan sesi dapat dicapai daripada genangan.

2.6 Perkongsian Data

Apabila kita perlu memproses data besar-besaran, pelayan tunggal tidak boleh memuatkan dan mengira data besar-besaran tersebut, maka kita perlu mengagihkan data besar-besaran secara sama rata kepada pelayan N Pelayan melakukan selari pengkomputeran. Bagaimana untuk mengagihkan data secara sama rata ke pelayan N?

Kami melakukan pengiraan cincang pada data, dan menggunakan modulo nilai cincang yang diperoleh bilangan pelayan N. Data dengan keputusan yang sama akan diberikan kepada pelayan yang sama dan diserahkan kepada pelayan ini untuk diproses. N pelayan memproses data besar secara selari, dan akhirnya menggabungkan hasilnya.

2.7 Storan Teragih

Simpan data besar-besaran dalam cache teragih atau pangkalan data teragih Idea meminjam adalah serupa dengan pecahan data di atas. Walau bagaimanapun, apakah yang perlu dilakukan apabila bilangan pelayan yang ditetapkan asal tidak mencukupi?

Ia tidak boleh diselesaikan dengan hanya menambah beberapa mesin Ini akan memusnahkan operasi modulo nilai cincang, membawa kepada penembusan cache dan menyebabkan kesan longsor. Begitu juga, masalah yang sama boleh berlaku apabila kerosakan mesin dialihkan. Pada masa ini, kita perlu menggunakan algoritma pencincangan yang konsisten untuk menyelesaikan masalah ini.

Algoritma cincang yang konsisten hanyalah untuk membina cincin cincang dengan 2^32 nod pada cincin itu dan cincang IP pelayan dan fail ke nod yang sepadan. Pelayan pertama yang semua fail hadapi mengikut arah jam ialah pelayan tempat ia disimpan. Dengan cara ini, apabila pelayan ditambah atau dipadamkan, bilangan fail yang terjejas boleh dikawal dan tidak akan menyebabkan longsor global.

Fahami algoritma Hash dan senario aplikasi dalam satu artikel

gelang cincang

Walau bagaimanapun, dengan kebarangkalian tertentu, apabila IP pelayan dipetakan ke cincin cincang, masalah pencongan cincin cincang akan berlaku. Ini akan membawa kepada pengedaran fail yang sangat tidak sekata pada pelayan, merosot kepada senario di mana kesan longsoran mudah disebabkan apabila menambah atau memadam pelayan pada mulanya.

Fahami algoritma Hash dan senario aplikasi dalam satu artikel

Kecondongan gelang cincang

Kami boleh menambah secara buatan beberapa nod maya pada pelayan ini supaya semua nod pelayan diagihkan sama rata pada cincang cincin.

Fahami algoritma Hash dan senario aplikasi dalam satu artikel

Gelang cincang dengan nod maya

3 Ringkasan

Senario penggunaan algoritma Hash jauh lebih banyak daripada di atas, terdapat juga seperti semakan CRC.

Atas ialah kandungan terperinci Fahami algoritma Hash dan senario aplikasi dalam satu artikel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kaedah pengiraan hash fungsi Golang, crc32, md5 dan sha1 Kaedah pengiraan hash fungsi Golang, crc32, md5 dan sha1 May 18, 2023 am 08:12 AM

Golang ialah bahasa pengaturcaraan berprestasi tinggi baharu dengan perpustakaan standard yang kaya dan fungsi terbina dalam. Ini termasuk fungsi cincang, yang boleh digunakan untuk menjana nilai cincang data untuk pengesahan fail, pengesahan data, dsb. Artikel ini akan memperkenalkan kaedah pengiraan dan aplikasi hash fungsi yang biasa digunakan, crc32, md5 dan sha1 di Golang. 1. Fungsi cincang Fungsi cincang Golang merangkumi pelbagai algoritma cincang, seperti SHA-1, MD5, SHA-224, SHA-256, SH

Bagaimana untuk melaksanakan operasi Redis Hash dalam php Bagaimana untuk melaksanakan operasi Redis Hash dalam php May 30, 2023 am 08:58 AM

Operasi cincang //Tetapkan nilai pada medan dalam jadual cincang. Mengembalikan 1 pada kejayaan dan 0 pada kegagalan. Jika jadual cincang tidak wujud, jadual akan dibuat dahulu dan kemudian nilai akan diberikan Jika medan sudah wujud, nilai lama akan ditimpa. $ret=$redis->hSet('user','realname','jetwu');//Dapatkan nilai medan yang ditentukan dalam jadual cincang. Jika jadual cincang tidak wujud, kembalikan palsu. $ret=$redis->hGet('user','rea

Operasi membaca fail Golang: petua membaca fail besar dengan cepat Operasi membaca fail Golang: petua membaca fail besar dengan cepat Jan 19, 2024 am 08:33 AM

Operasi membaca fail Golang: Petua untuk membaca fail besar dengan cepat, contoh kod khusus diperlukan Dalam pengaturcaraan Golang, membaca fail adalah operasi yang sangat biasa. Tetapi apabila fail besar perlu dibaca, ia biasanya merupakan operasi yang memakan masa dan sumber. Oleh itu, cara membaca fail besar dengan cepat adalah topik yang patut dibincangkan. Artikel ini akan memperkenalkan cara menggunakan ciri Golang dan beberapa teknik untuk membaca fail besar dengan cepat dan memberikan contoh kod khusus. Menggunakan bufio untuk membaca fail dalam Golang, membaca fail

Apakah alat algoritma hash yang biasa digunakan dalam perpustakaan fungsi Java? Apakah alat algoritma hash yang biasa digunakan dalam perpustakaan fungsi Java? Apr 30, 2024 pm 03:21 PM

Dalam pustaka fungsi Java, kelas MessageDigest boleh digunakan untuk algoritma cincang dan menyediakan pelaksanaan MD5, SHA dan algoritma cincang lain, termasuk: 1. Algoritma MD5: Gunakan MessageDigest.getInstance("MD5") untuk mendapatkan contoh. 2.Algoritma SHA: termasuk SHA-1, SHA-256, SHA-384 dan SHA-512, gunakan MessageDigest.getInstance("SHA-256") untuk mendapatkan tika. 3. Algoritma pencincangan lain: Anda boleh menggunakan perpustakaan pihak ketiga, seperti perpustakaan Algorithms.MessageDigest atau BouncyCastle.

Pembangunan Laravel: Bagaimana untuk menjana hash kata laluan menggunakan Laravel Hash? Pembangunan Laravel: Bagaimana untuk menjana hash kata laluan menggunakan Laravel Hash? Jun 17, 2023 am 10:59 AM

Laravel kini merupakan salah satu rangka kerja web PHP yang paling popular, menyediakan pembangun dengan banyak ciri dan komponen yang berkuasa, yang mana LaravelHash adalah salah satu daripadanya. LaravelHash ialah perpustakaan PHP untuk pencincangan kata laluan yang boleh digunakan untuk memastikan kata laluan selamat dan menjadikan data pengguna aplikasi anda lebih selamat. Dalam artikel ini, kita akan mempelajari cara LaravelHash berfungsi dan cara menggunakannya untuk mencincang dan mengesahkan kata laluan. Pengetahuan prasyarat dalam pembelajaran Lara

Penjelasan terperinci algoritma hash dalam PHP Penjelasan terperinci algoritma hash dalam PHP Jul 07, 2023 pm 07:13 PM

Penjelasan terperinci tentang algoritma cincang dalam PHP Dalam pembangunan PHP, algoritma cincang ialah teknologi penyulitan yang biasa digunakan, yang boleh menukar data dari sebarang panjang kepada nilai cincang panjang tetap. Algoritma hash digunakan secara meluas dalam kriptografi, pengesahan integriti data dan carian data pantas. Dalam artikel ini, kami akan memperkenalkan algoritma pencincangan dalam PHP secara terperinci dan menyediakan beberapa contoh kod untuk rujukan. 1. Prinsip Asas Algoritma Hash Algoritma cincang menjana nilai cincang panjang tetap dengan melakukan satu siri operasi matematik pada data input. Mempunyai asas berikut

Bagaimana untuk melaksanakan algoritma hash MD5 menggunakan java Bagaimana untuk melaksanakan algoritma hash MD5 menggunakan java Sep 21, 2023 am 08:31 AM

Cara menggunakan Java untuk melaksanakan algoritma cincang MD5 MD5 (MessageDigestAlgorithm5) ialah algoritma cincang yang biasa digunakan untuk menyulitkan dan mengesahkan data. Di Java, kita boleh menggunakan kelas MessageDigest untuk melaksanakan algoritma cincangan MD5. Berikut ialah kod sampel ringkas yang menunjukkan cara melaksanakan algoritma MD5 menggunakan Java. importjava.security.MessageDigest;

Cara menggunakan modul hashlib untuk pengiraan algoritma hash dalam Python 2.x Cara menggunakan modul hashlib untuk pengiraan algoritma hash dalam Python 2.x Jul 29, 2023 pm 05:16 PM

Cara menggunakan modul hashlib untuk pengiraan algoritma cincang dalam Python 2.x Dalam pengaturcaraan Python, algoritma cincang ialah algoritma yang biasa digunakan untuk menjana pengenalan data yang unik. Python menyediakan modul hashlib untuk melakukan pengiraan algoritma hash. Artikel ini akan memperkenalkan cara menggunakan modul hashlib untuk melakukan pengiraan algoritma cincang dan memberikan beberapa kod sampel. Modul hashlib adalah sebahagian daripada perpustakaan standard Python dan menyediakan pelbagai algoritma hash biasa, seperti MD5, SH

See all articles