Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में MD5() से सभी प्रविष्टियों के पासवर्ड हैश अपडेट करें

MySQL के MD5() फ़ंक्शन का उपयोग करके प्लेनटेक्स्ट पासवर्ड कॉलम से हैश कॉलम अपडेट करें।

टेबल बनाएं

mysql> CREATE TABLE DemoTable1887 (
    Password TEXT,
    HashPassword TEXT
);

डेटा डालें

mysql> INSERT INTO DemoTable1887(Password) VALUES('John@9089'), ('90987_Carol'), ('656464_David_4343');

MD5 हैश से अपडेट करें

mysql> UPDATE DemoTable1887 SET HashPassword = MD5(Password);

आउटपुट:

+-------------------+----------------------------------+
| Password          | HashPassword                     |
+-------------------+----------------------------------+
| John@9089         | 7f92a7e09ab1a0cd3f36ec164f035c9a |
| 90987_Carol       | 1578fa8c47f0e53a898c8ada5c0111b4 |
| 656464_David_4343 | e5ec2bd2cb55b2252be7ca9eb546659e |
+-------------------+----------------------------------+

सुरक्षा चेतावनी

⚠ MD5 पासवर्ड हैशिंग के लिए असुरक्षित है!
  • बहुत तेज़ (ब्रूट-फोर्स आसान)।
  • कोई साल्ट नहीं (रेनबो टेबल हमला)।
  • टकराव भेद्यता।

अनुशंसित विकल्प

  • एप्लिकेशन लेयर पर हैश करें: bcrypt, Argon2, PBKDF2 (लागत पैरामीटर के साथ)।
  • MySQL 8.0: SHA2(str, 256) या SHA2(str, 512) (अभी भी तेज़, साल्ट स्वयं जोड़ें)।
  • कभी भी प्लेनटेक्स्ट पासवर्ड संग्रहीत न करें।

MySQL में SHA2 उदाहरण

UPDATE DemoTable1887 SET HashPassword = SHA2(CONCAT('salt_', Password), 256);
  1. Java MySQL का उपयोग करके MySQL टेबल अपडेट करें Java MySQL का उपयोग करके MySQL टेबल अपडेट करें

    JDBC में PreparedStatement का उपयोग करके पैरामीटरीकृत अपडेट को सुरक्षित रूप से निष्पादित करें। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable(Id INT, FirstName VARCHAR(40)); Query OK, 0 rows affected (0.62 sec) INSERT INTO DemoTable VALUES(100,Chris),(111,Mike),(121,Sam); अपडेट से पहले SELECT

  1. - MySQL: GROUP BY के साथ फील्ड कैसे अपडेट करें?

    समस्या MySQL सीधे UPDATE में GROUP BY का समर्थन नहीं करता। समाधान: ORDER BY LIMIT का उपयोग करें। उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2018 (EmployeeName, EmployeeSalary) VALUES (Chris, 25400); अपडेट क्वेरी Chris की पहली प्रविष्टि (EmployeeId के अनुसार) का वेतन बढ़ाएं: ORDER B

  1. - MySQL में GROUP BY HAVING COUNT से अद्वितीय अंतिम नाम वाले उपयोगकर्ता खोजें

    सिंटैक्स select max(tbl.firstName), tbl.lastName, count(distinct tbl.firstName) as CountOfFirstName from demo76 as tbl group by tbl.lastName having count(distinct tbl.firstName) = 1; उदाहरण डेटा insert into demo76 values(John,Doe), (David,Smith), (Adam,Smith); परिणाम: केवल अद्वितीय अंतिम नाम (Do