View Discussion Show Improve Article Save Article View Discussion Improve Article Save Article The MySQL SHA1() function is used for encrypting a string using the SHA-1 technique. The SHA1 stands for secure hash algorithm and it produces a 160-bit checksum for a user inputted string. The MySQL SHA1() function returns NULL if the string passed as an argument is a NULL string. The SHA1() function accepts one parameter which is the string to be encrypted. Syntax: SHA1(string) Parameters Used: string – It is used to specify the plain text string that is to be encrypted. Return Value: Supported Versions of MySQL:
Example-1: Implementing SHA1() function on a
string. SELECT SHA1('geeksforgeeks'); Output: 69c9a5c19c5c27e43cb0efc4c8644ed6d03a110b Example-2: Implementing SHA1() function on a string which has a combination of characters and integers. SELECT SHA1('geeksforgeeks123'); Output: 53ce00666cbef425ab8d06ed652095bea20a1616 Example-3: Implementing SHA1() function on a NULL string and returning the length of the string after compression. SELECT SHA1(NULL); Output: NULL Fungsi SHA1 menggunakan fungsi hash kriptografi SHA1 untuk mengubah string variabel-panjang menjadi string 40-karakter yang merupakan representasi teks dari nilai heksadesimal dari checksum 160-bit. SintaksisSHA1 adalah sinonim dariFungsi SHAdanFungsi FUNC_SHA1.
PendapatJenis pengembalianFungsi SHA1 mengembalikan string 40-karakter yang merupakan representasi teks dari nilai heksadesimal dari checksum 160-bit. ContohContoh berikut mengembalikan nilai 160-bit untuk kata 'Amazon Redshift':
Saya punya pertanyaan sederhana yang muncul ketika saya ingin menyimpan hasil hash SHA1 dalam database MySQL: Berapa lama bidang VARCHAR berada di tempat saya menyimpan hasil hash? Jawaban: Saya akan menggunakan Dan saya juga tidak akan menyimpan nilai
yang Jadi saya sarankan Anda untuk menggunakan
Saya membandingkan persyaratan penyimpanan untuk
Dengan jutaan catatan, Panjang hash SHA1 adalah 40 karakter! Referensi diambil dari blog ini: Di bawah ini adalah daftar algoritma hashing beserta ukuran bit yang dibutuhkan:
Dibuat satu tabel sampel dengan membutuhkan CHAR (n):
Ukuran output dari sha1 adalah 160 bit. Yaitu 160/8 == 20 karakter (jika Anda menggunakan karakter 8-bit) atau 160/16 = 10 (jika Anda menggunakan karakter 16-bit). Jadi panjangnya antara 10 karakter 16-bit, dan 40 digit hex. Dalam kasus apa pun, tentukan format yang akan Anda simpan, dan jadikan bidang itu ukuran tetap berdasarkan format itu. Dengan begitu Anda tidak akan memiliki ruang kosong. Anda mungkin masih ingin menggunakan VARCHAR dalam kasus di mana Anda tidak selalu menyimpan hash untuk pengguna (yaitu mengautentikasi akun / lupa url login). Setelah pengguna mengautentikasi / mengubah info masuk mereka, mereka seharusnya tidak dapat menggunakan hash dan seharusnya tidak punya alasan untuk itu. Anda dapat membuat tabel terpisah untuk menyimpan hash -> asosiasi pengguna sementara yang dapat dihapus tapi saya rasa kebanyakan orang tidak repot-repot melakukan ini.
Jika Anda memerlukan indeks pada kolom sha1, saya sarankan CHAR (40) karena alasan kinerja. Dalam kasus saya, kolom sha1 adalah token konfirmasi email, jadi pada halaman landing kueri hanya masuk dengan token. Dalam hal ini CHAR (40) dengan INDEX, menurut pendapat saya, adalah pilihan terbaik :) Jika Anda ingin mengadopsi metode ini, jangan lupa untuk meninggalkan $ raw_output = false. |