কম্পিউটার টিউটোরিয়াল

MySQL-এ সংরক্ষিত MD5 স্ট্রিংকে ডেসিমেল মানতে রূপান্তর করা

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 (১৮৪৪৬৭৪৪০৭৩৭০৯৫৫১৬১৬) দিয়ে গুন করে দ্বিতীয় অংশে যোগ করলে পুরো ১২৮-বিট ডেসিমেল মান পাওয়া যায়।

  1. MySQL-এ স্ট্রিং (VARCHAR) থেকে টাইমস্ট্যাম্প ফরম্যাটে রূপান্তর

  2. MySQL 저장 프로시저에서 IF-ELSE 조건문 구현하기

  3. C++-এ হেক্সাডেসিমেল ভ্যালু স্ট্রিংকে ASCII ভ্যালু স্ট্রিংয়ে রূপান্তর করা

  4. C#-এ Int32 থেকে Decimal-এ কনভার্ট করা (Convert.ToDecimal)