MySQL-এ SHA2() ফাংশন ব্যবহার করে MD5 হ্যাশ করা পাসওয়ার্ডকে আরও নিরাপদ SHA-256-এ রূপান্তর করা যায়। SHA2() SHA-2 ফ্যামিলি (SHA-224, SHA-256, SHA-384, SHA-512) সমর্থন করে।
উদাহরণ: টেবিল তৈরি এবং MD5 পাসওয়ার্ড ইনসার্ট
mysql> create table DemoTable818(UserPassword text); Query OK, 0 rows affected (0.51 sec)
mysql> insert into DemoTable818 values(MD5('John_123'));
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable818 values(MD5('999Carol@22'));
Query OK, 1 row affected (0.14 sec)
MD5 হ্যাশ দেখানো
mysql> select * from DemoTable818;
+----------------------------------+ | UserPassword | +----------------------------------+ | 47c7d0987db4e59e2264ce9fefce4977 | | 950aa70edd5b686a807b3bfffdf2248c | +----------------------------------+ 2 rows in set (0.00 sec)
MD5 থেকে SHA-256-এ রূপান্তর (UPDATE)
mysql> update DemoTable818 set UserPassword=SHA2(UserPassword,256); Query OK, 2 rows affected (0.19 sec) Rows matched: 2 Changed: 2 Warnings: 0
রূপান্তর後の হ্যাশ দেখানো
mysql> select * from DemoTable818;
+------------------------------------------------------------------+ | UserPassword | +------------------------------------------------------------------+ | 8b68c46294a9ccb2449324c24fe774f95b7c14e4b56fc51c7f8e6c5b01c7020f | | 9cc80741546051ae3de7d31246327968c98af3c65125376acb7b49a0760d42a3 | +------------------------------------------------------------------+ 2 rows in set (0.00 sec)
গুরুত্বপূর্ণ নিরাপত্তা নোট
⚠️ সতর্কতা: এই পদ্ধতিতে MD5 হ্যাশকে SHA-256-এ হ্যাশ করা হয়েছে, মূল প্লেইন টেক্সট পাসওয়ার্ড থেকে SHA-256 তৈরি করা হয়নি। এটি "হ্যাশ অফ হ্যাশ" যা নিরাপত্তা দৃষ্টিকোণ থেকে আদর্শ নয়।
সঠিক পদ্ধতি (পাসওয়ার্ড রি-হ্যাশ)
- ব্যবহারকারী পরবর্তী লগইন করলে প্লেইন পাসওয়ার্ড পাওয়া যায়
- তখন
SHA2(plain_password, 256)বা ভালো হয়bcrypt/argon2দিয়ে নতুন হ্যাশ সেট করুন - পুরনো MD5 কলামটি মুছে দিন
MySQL ৮.০-এ ভালো পাসওয়ার্ড হ্যাশিং
-- SHA2-256 (যদি bcrypt না থাকে)
SELECT SHA2('my_password', 256);
-- নেটিভ পাসওয়ার্ড হ্যাশিং (MySQL 8.0+)
SELECT PASSWORD('my_password'); -- caching_sha2_password