হ্যাশিং অ্যালগরিদম অনুযায়ী ডেটা টাইপ নির্বাচন
হ্যাশড পাসওয়ার্ডের দৈর্ঘ্য হ্যাশিং অ্যালগরিদমের ওপর নির্ভর করে। হেক্সাডেসিমাল আউটপুট হাফ করতে UNHEX() ব্যবহার করে BINARY টাইপে সংরক্ষণ করা যায়।
সাধারণ অ্যালগরিদম ও ডেটা টাইপ
- MD5: ১২৮ বিট = ৩২ হেক্স ক্যারেক্টার →
CHAR(32)বাBINARY(16) - SHA-1: ১৬০ বিট = ৪০ হেক্স ক্যারেক্টার →
CHAR(40)বাBINARY(20) - SHA-256: ২৫৬ বিট = ৬৪ হেক্স ক্যারেক্টার →
CHAR(64)বাBINARY(32)
MD5 উদাহরণ
mysql> SELECT MD5('This is a hashed password');
+----------------------------------+
| MD5('This is a hashed password') |
+----------------------------------+
| e9d4c42db40abbb4724a0047f7e91e67 |
+----------------------------------+
mysql> SELECT CHARACTER_LENGTH(MD5('This is a hashed password'));
+----------------------------------------------------+
| CHARACTER_LENGTH(MD5('This is a hashed password')) |
+----------------------------------------------------+
| 32 |
+----------------------------------------------------+
SHA-1 উদাহরণ
mysql> SELECT SHA1('This is a hashed password');
+------------------------------------------+
| SHA1('This is a hashed password') |
+------------------------------------------+
| 4e2e1a39dba84a0b5a91043bb0e4dbef23970837 |
+------------------------------------------+
mysql> SELECT CHARACTER_LENGTH(SHA1('This is a hashed password'));
+-----------------------------------------------------+
| CHARACTER_LENGTH(SHA1('This is a hashed password')) |
+-----------------------------------------------------+
| 40 |
+-----------------------------------------------------+
সিকিউরিটি টিপস: আধুনিক অ্যাপ্লিকেশনে MD5/SHA-1 এড়িয়ে bcrypt, scrypt, বা Argon2 ব্যবহার করুন। MySQL 8.0-এ SHA2(str, 256) বিল্ট-ইন।