Mari kita pertimbangkan situs tempat pengguna dapat mengunggah file. Bisakah saya menggunakan hash MD5 atau SHA1 dari kontennya sebagai nama file? Jika tidak, apa yang harus saya gunakan? Untuk menghindari tabrakan.

1
x-yuri 18 Agustus 2017, 20:25

2 jawaban

Jawaban Terbaik

Anda dapat menggunakan hampir semua hal sebagai nama file, dikurangi karakter yang dicadangkan. Pilihan khusus itu tidak memberi tahu Anda apa pun tentang file itu sendiri, selain dari nilai hashnya. Asalkan mereka tidak mengunggah file yang identik, itu akan mencegah tabrakan penamaan file. Jika Anda tidak peduli tentang itu, lakukanlah.

Biasanya orang mengunggah file agar seseorang dapat menariknya kembali turun. Jadi, Anda perlu memiliki semacam deskriptor; jika tidak, pengguna perlu membuka banyak file untuk mendapatkan yang mereka inginkan. Mungkin opsi yang lebih baik adalah membiarkan pengguna memilih nama (hingga batas karakter) dan kemudian menambahkan kode datetime. Kemudian, untuk memiliki tabrakan, Anda harus meminta 2 pengguna memilih nama yang sama persis pada waktu yang sama. Sertakan detik dalam kode datetime, dan peluang tabrakan mendekati (tetapi tidak pernah sama) nol.

3
baldprussian 18 Agustus 2017, 17:40

Meskipun serangan tabrakan SHA1 sebelumnya, probabilitas tabrakan hash SHA1 masih sangat rendah sehingga dapat dianggap aman untuk digunakan sebagai nama file dalam banyak kasus.

Pendekatan umum lainnya adalah menggunakan GUID/UUID untuk setiap file. Jadi satu-satunya pertanyaan yang tersisa adalah bagaimana Anda ingin menangani dua file identik yang diunggah oleh dua pengguna. Cara termudah adalah memperlakukan mereka sebagai dua file terpisah dan tidak satu pun dari mereka akan terpengaruh satu sama lain.

Meskipun terkadang Anda mungkin khawatir tentang ruang penyimpanan. Misalnya, jika file yang diunggah sangat besar, Anda mungkin ingin mempertimbangkan untuk menyimpan dua file identik sebagai satu untuk menghemat ruang. Bergantung pada pengalaman pengguna sistem Anda, Anda mungkin perlu menangani beberapa situasi setelahnya, seperti saat salah satu dari dua pengguna menghapus file. Namun ini tidak sulit untuk ditangani dan hanya bergantung pada sisa sistem Anda.

1
Phillip Chan 12 September 2018, 04:13