VarChar için HashBytes dönüştürme

oy
102

Ben şu komutu ile bunu SQL Server 2005'te bir dize değeri MD5 Hash almak istiyorum:

SELECT HashBytes('MD5', 'HelloWorld')

Ancak, bu olur.Sıd yerine VarChar değeri döndürür. Ben dönüştürmek çalışırsanız 0x68E109F0F40CA72A15E05CC22786F8E6bir VarChar içine alıyorum há ðô§*à\Â'†øæyerine 68E109F0F40CA72A15E05CC22786F8E6.

Herhangi bir SQL tabanlı çözüm var mı?

Evet

Oluştur 05/08/2008 saat 12:49
kaynak kullanıcı
Diğer dillerde...                            


7 cevaplar

oy
134

Nerede çözüm başka bulduk:

SELECT SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', 'HelloWorld')), 3, 32)
Cevap 05/08/2008 saat 15:26
kaynak kullanıcı

oy
59
SELECT CONVERT(NVARCHAR(32),HashBytes('MD5', 'Hello World'),2)
Cevap 03/01/2011 saat 15:26
kaynak kullanıcı

oy
29

Kullanım master.dbo.fn_varbintohexsubstring(0, HashBytes('SHA1', @input), 1, 0)yerine master.dbo.fn_varbintohexstrve sonra substringingsonucu.

Aslında fn_varbintohexstrçağrıları fn_varbintohexsubstringdahili olarak. Ilk argüman fn_varbintohexsubstringeklemek söyler 0xFönek olarak ya da değil. fn_varbintohexstraramalar fn_varbintohexsubstringile 1olarak internal ilk parametre olarak verilir.

İhtiyacınız yapmadığından 0xF, çağrı fn_varbintohexsubstringdoğrudan.

Cevap 17/03/2011 saat 17:00
kaynak kullanıcı

oy
15

Aksine David Şövalye diyor, bu iki alternatifi 2008 MS SQL aynı yanıtı döndürebilir:

SELECT CONVERT(VARCHAR(32),HashBytes('MD5', 'Hello World'),2)
SELECT UPPER(master.dbo.fn_varbintohexsubstring(0, HashBytes('MD5', 'Hello World'), 1, 0))

İlki sürümü 2008'den başlayarak, daha iyi bir seçimdir gibi Öyle görünüyor.

Cevap 28/08/2014 saat 06:35
kaynak kullanıcı

oy
8
convert(varchar(34), HASHBYTES('MD5','Hello World'),1)

(1 dizeye onaltılı dönüştürmek için)

düşürmek ve altkatarıyla dizenin başından 0x kaldırmak için bu dönüştürmek:

substring(lower(convert(varchar(34), HASHBYTES('MD5','Hello World'),1)),3,32)

Biz dizeye bayt dönüştürdükten sonra C # olsun tam olarak aynı

Cevap 07/09/2011 saat 08:43
kaynak kullanıcı

oy
1

Bu kombinasyon benim örnekte göre% 100 çalışır belgesiz rağmen teyit edebilir bir SP Değişken Hashed Saklı bir yordam içinde aşağıdaki kodu kullanarak kişisel deneyim ile:

@var=SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('SHA2_512', @SPvar)), 3, 128)
Cevap 24/02/2015 saat 22:54
kaynak kullanıcı

oy
-3

varbinary için veri türünü değiştirmek benim için en iyi iş gibi görünüyor.

Cevap 17/02/2010 saat 22:31
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more