MD5 হ্যাশ হেক্সাডেসিমেল ফরম্যাটে থাকে। MySQL-এ CONV() এবং CAST() ফাংশন ব্যবহার করে হেক্সाडেসিমেল স্ট্রিংকে ডেসিমেল (বেস ১০) সংখ্যায় রূপান্তর করা যায়। MD5 ৩২ ক্যারেক্টার হেক্স, যা ১২৮ বিট। বড় সংখ্যা হ্যান্ডল করার জন্য দুটি ১৬ ক্যারেক্টার ভাগ করে কনভার্ট করা হয়।
টেবিল তৈরি ও ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (Password TEXT);
mysql> INSERT INTO DemoTable VALUES ('a5391e96f8d48a62e8c85381df108e98');
mysql> INSERT INTO DemoTable VALUES ('ea7a32d2dc5bb793af262dcb6ea1a54d');
MD5 থেকে ডেসিমেল কনভার্ট কোয়েরি
mysql> SELECT CAST(CONV(SUBSTR(Password, 1, 16), 16, 10) AS DECIMAL(65)) * 18446744073709551616
+ CAST(CONV(SUBSTR(Password, 17, 16), 16, 10) AS DECIMAL(65)) AS DecimalValue
FROM DemoTable;
ফলাফল:
+-----------------------------------------+ | DecimalValue | +-----------------------------------------+ | 219619200658969319114298942978912194200 | | 311673842057003455136843080376797734221 | +-----------------------------------------+
ব্যাখ্যা: SUBSTR(Password,1,16) প্রথম ১৬ হেক্স ক্যারেক্টার (উচ্চ ৬৪ বিট), SUBSTR(Password,17,16) পরবর্তী ১৬ ক্যারেক্টার (নিম্ন ৬৪ বিট)। CONV(...,16,10) হেক্স থেকে ডেসিমেলে কনভার্ট করে। প্রথম অংশকে 2^64 (১৮৪৪৬৭৪৪০৭৩৭০৯৫৫১৬১৬) দিয়ে গুন করে দ্বিতীয় অংশে যোগ করলে পুরো ১২৮-বিট ডেসিমেল মান পাওয়া যায়।