sql w3schools হ্যাশবাইট থেকে VarChar রূপান্তর করুন




w3schools sql (6)

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

(1 হেক্সাডেসিমাল স্ট্রিং রূপান্তর করার জন্য)

নিম্নে রূপান্তর করুন এবং পদার্থ দ্বারা স্ট্রিং শুরু থেকে 0x সরান:

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

বিটকে স্ট্রিং রূপান্তরিত করার পরে আমরা # C তে যা পেয়েছি তা ঠিক একই

আমি SQL সার্ভার 2005 এর একটি স্ট্রিং মানের MD5 হ্যাশ পেতে চাই। আমি এই কমান্ডটি দিয়ে এটি করি:

SELECT HashBytes('MD5', 'HelloWorld')

যাইহোক, এটি একটি VarChar মান পরিবর্তে একটি VarBinary ফেরত। যদি আমি 0x68E109F0F40CA72A15E05CC22786F8E6 একটি VarChar রূপান্তর করার চেষ্টা করি তবে আমি há ðô§*à\Â'†øæ পরিবর্তে há ðô§*à\Â'†øæ 68E109F0F40CA72A15E05CC22786F8E6

কোন এসকিউএল ভিত্তিক সমাধান আছে?

Yes


SELECT CONVERT(NVARCHAR(32),HashBytes('MD5', 'Hello World'),2)

master.dbo.fn_varbintohexsubstring(0, HashBytes('SHA1', @input), 1, 0) ব্যবহার করুন master.dbo.fn_varbintohexsubstring(0, HashBytes('SHA1', @input), 1, 0) পরিবর্তে master.dbo.fn_varbintohexstr এবং ফলাফলটি সাবস্ক্রাইব করুন।

আসলে fn_varbintohexstr অভ্যন্তরীণভাবে fn_varbintohexstr কল করে। fn_varbintohexsubstring প্রথম যুক্তি এটি 0xF কে প্রিফিক্স হিসাবে বা না যোগ করতে বলে। fn_varbintohexstr প্রথম fn_varbintohexsubstring হিসাবে 1 সঙ্গে fn_varbintohexstr কল।

কারণ আপনার 0xF প্রয়োজন 0xF , সরাসরি fn_varbintohexsubstring কল করুন।


ডেভিড নাইটের বক্তব্যের বিপরীতে, এই দুটি বিকল্পগুলি এমএস এসকিউএল ২008 এ একই প্রতিক্রিয়া প্রদান করে:

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

দেখে মনে হচ্ছে প্রথম সংস্করণটি 2008 এর সংস্করণ থেকে শুরু করা ভাল পছন্দ।


একটি এসপি ভেরিয়েবল হ্যাশ করা যা একটি সংরক্ষিত পদ্ধতিতে নিম্নলিখিত কোডটি ব্যবহার করার ব্যক্তিগত অভিজ্ঞতা দিয়ে আমি নিশ্চিত করতে পারি, যদিও নথিভুক্ত না হলেও, এই সমন্বয়টি আমার উদাহরণ অনুসারে 100% কাজ করে:

@var=SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('SHA2_512', @SPvar)), 3, 128)

আমি সমাধান খুঁজে পেয়েছেন যেখানে যেখানে:

SELECT SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', 'HelloWorld')), 3, 32)




sql-server