cari
RumahPeranti teknologiAIFahami 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 hashfail besarhash

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
Artikel ini dikembalikan pada:51CTO.COM. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Let's Dance: Gerakan berstruktur untuk menyempurnakan jaring saraf manusia kitaLet's Dance: Gerakan berstruktur untuk menyempurnakan jaring saraf manusia kitaApr 27, 2025 am 11:09 AM

Para saintis telah mengkaji secara meluas rangkaian saraf manusia dan mudah (seperti yang ada di C. elegans) untuk memahami fungsi mereka. Walau bagaimanapun, soalan penting timbul: Bagaimana kita menyesuaikan rangkaian saraf kita sendiri untuk berfungsi dengan berkesan bersama -sama dengan novel AI s

New Google Leak mendedahkan perubahan langganan untuk Gemini AINew Google Leak mendedahkan perubahan langganan untuk Gemini AIApr 27, 2025 am 11:08 AM

Gemini Google Advanced: Tahap Langganan Baru di Horizon Pada masa ini, mengakses Gemini Advanced memerlukan pelan premium AI $ 19.99/bulan. Walau bagaimanapun, laporan Pihak Berkuasa Android menunjukkan perubahan yang akan datang. Kod dalam google terkini p

Bagaimana Pecutan Analisis Data Menyelesaikan Bots Tersembunyi AIBagaimana Pecutan Analisis Data Menyelesaikan Bots Tersembunyi AIApr 27, 2025 am 11:07 AM

Walaupun gembar -gembur di sekitar keupayaan AI maju, satu cabaran penting bersembunyi dalam perusahaan AI perusahaan: kesesakan pemprosesan data. Walaupun CEO merayakan kemajuan AI, jurutera bergelut dengan masa pertanyaan yang perlahan, saluran paip yang terlalu banyak, a

Markitdown MCP boleh menukar mana -mana dokumen ke Markdowns!Markitdown MCP boleh menukar mana -mana dokumen ke Markdowns!Apr 27, 2025 am 09:47 AM

Dokumen pengendalian tidak lagi hanya mengenai pembukaan fail dalam projek AI anda, ia mengenai mengubah kekacauan menjadi kejelasan. Dokumen seperti PDF, PowerPoints, dan perkataan banjir aliran kerja kami dalam setiap bentuk dan saiz. Mengambil semula berstruktur

Bagaimana cara menggunakan Google ADK untuk ejen bangunan? - Analytics VidhyaBagaimana cara menggunakan Google ADK untuk ejen bangunan? - Analytics VidhyaApr 27, 2025 am 09:42 AM

Memanfaatkan kuasa Kit Pembangunan Ejen Google (ADK) untuk membuat ejen pintar dengan keupayaan dunia sebenar! Tutorial ini membimbing anda melalui membina ejen perbualan menggunakan ADK, menyokong pelbagai model bahasa seperti Gemini dan GPT. W

Penggunaan SLM Over LLM untuk Penyelesaian Masalah Berkesan - Analisis VidhyaPenggunaan SLM Over LLM untuk Penyelesaian Masalah Berkesan - Analisis VidhyaApr 27, 2025 am 09:27 AM

Ringkasan: Model bahasa kecil (SLM) direka untuk kecekapan. Mereka lebih baik daripada model bahasa yang besar (LLM) dalam persekitaran yang kurang sensitif, masa nyata dan privasi. Terbaik untuk tugas-tugas berasaskan fokus, terutamanya di mana kekhususan domain, kawalan, dan tafsiran lebih penting daripada pengetahuan umum atau kreativiti. SLMs bukan pengganti LLM, tetapi mereka sesuai apabila ketepatan, kelajuan dan keberkesanan kos adalah kritikal. Teknologi membantu kita mencapai lebih banyak sumber. Ia sentiasa menjadi promoter, bukan pemandu. Dari era enjin stim ke era gelembung internet, kuasa teknologi terletak pada tahap yang membantu kita menyelesaikan masalah. Kecerdasan Buatan (AI) dan AI Generatif Baru -baru ini tidak terkecuali

Bagaimana cara menggunakan model Google Gemini untuk tugas penglihatan komputer? - Analytics VidhyaBagaimana cara menggunakan model Google Gemini untuk tugas penglihatan komputer? - Analytics VidhyaApr 27, 2025 am 09:26 AM

Memanfaatkan kekuatan Google Gemini untuk Visi Komputer: Panduan Komprehensif Google Gemini, chatbot AI terkemuka, memanjangkan keupayaannya di luar perbualan untuk merangkumi fungsi penglihatan komputer yang kuat. Panduan ini memperincikan cara menggunakan

Gemini 2.0 Flash vs O4-Mini: Bolehkah Google lebih baik daripada Openai?Gemini 2.0 Flash vs O4-Mini: Bolehkah Google lebih baik daripada Openai?Apr 27, 2025 am 09:20 AM

Landskap AI pada tahun 2025 adalah elektrik dengan kedatangan Flash Gemini 2.0 Google dan Openai's O4-mini. Model-model canggih ini, yang dilancarkan minggu-minggu, mempunyai ciri-ciri canggih yang setanding dan skor penanda aras yang mengagumkan. Perbandingan mendalam ini

See all articles

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini