Apakah ada cara untuk menghasilkan string Hash MD5 tipe varchar (32) tanpa menggunakan fn_varbintohexstr
SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', '[email protected]')), 3, 32)
Sehingga bisa digunakan di dalam tampilan dengan SCHEMABINDING
sql-server
tsql
sql-server-2008
Coder Duka
sumber
sumber
Jawaban:
sumber
Gunakan HashBytes
Itu akan memberi Anda 0xF53BD08920E5D25809DF2563EF9C52B6
-
Itu akan memberi Anda F53BD08920E5D25809DF2563EF9C52B6
sumber
Larutan:
sumber
Tidak ada jawaban lain yang berhasil untuk saya. Perhatikan bahwa SQL Server akan memberikan hasil yang berbeda jika Anda mengirimkan string hard-code versus memberinya makan dari kolom di set hasil Anda. Di bawah ini adalah keajaiban yang berhasil bagi saya untuk memberikan kecocokan yang sempurna antara SQL Server dan MySql
sumber
LOWER()
hanya diperlukan jika peka huruf besar / kecil.MD5
Hash identik dibandingkan denganMD5()
fungsiPostgresql
. Saya heran mengapaMD5
hash berbeda dariPython
danPostgresql
. Terima kasih untuk resepnya ..Untuk data hingga 8000 karakter, gunakan:
Demo
Untuk data biner (tanpa batas 8000 byte) gunakan:
Demo
sumber
coba ini:
sumber
sumber
bekerja untuk saya.
sumber
Anda tidak secara eksplisit mengatakan Anda ingin string menjadi hex; Jika Anda terbuka untuk pengkodean string base 64 yang lebih hemat ruang, dan Anda menggunakan SQL Server 2016 atau yang lebih baru, berikut adalah alternatifnya:
Ini menghasilkan:
sumber