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

MySQL में यूजरनेम और पासवर्ड सुरक्षित रूप से कैसे स्टोर करें?

महत्वपूर्ण चेतावनी: इस लेख में दिखाया गया MD5() पासवर्ड स्टोरेज के लिए असुरक्षित और अप्रचलित है। आधुनिक एप्लिकेशन में bcrypt, Argon2, या PBKDF2 उपयोग करें।

पुराना तरीका (MD5 - उपयोग न करें)

CREATE TABLE UserNameAndPasswordDemo (
    U_Id INT AUTO_INCREMENT PRIMARY KEY,
    UserId VARCHAR(255) UNIQUE,
    UserPassword VARCHAR(255)
);

INSERT INTO UserNameAndPasswordDemo (UserId, UserPassword) 
VALUES ('john@example.com', MD5('john123'));

-- परिणाम: 6e0b7076126a29d5dfcbd54835387b7b (आसानी से क्रैक होने योग्य)

आधुनिक सुरक्षित तरीका: bcrypt (PHP उदाहरण)

prepare('INSERT INTO users (email, password) VALUES (?, ?)');
$stmt->execute([$email, $hash]);

// वेरिफाई करना
$stmt = $pdo->prepare('SELECT password FROM users WHERE email = ?');
$stmt->execute([$email]);
$stored_hash = $stmt->fetchColumn();

if (password_verify($password, $stored_hash)) {
    // लॉगिन सफल
}

MySQL 8.0+ में बिल्ट-इन फंक्शन (सीमित उपयोग)

-- केवल डेमो/टेस्ट के लिए, प्रोडक्शन के लिए नहीं
SELECT SHA2('password', 256);  -- SHA-256
-- एप्लिकेशन लेयर पर हैश करना बेहतर

सर्वोत्तम अभ्यास चेकलिस्ट

  • ✅ कभी भी प्लेनटेक्स्ट पासवर्ड स्टोर न करें
  • ✅ मजबूत एडाप्टिव हैशिंग उपयोग करें: Argon2id > bcrypt > PBKDF2
  • ✅ प्रति-उपयोगकर्ता यूनिक सॉल्ट (bcrypt/Argon2 में अंतर्निहित)
  • ✅ कॉस्ट फैक्टर/इटरेशन कॉन्फ़िगरेबल रखें
  • ✅ TLS/SSL पर ही पासवर्ड ट्रांसमिट करें
  • ✅ डेटाबेस उपयोगकर्ता को न्यूनतम आवश्यक अधिकार दें
  • ✅ नियमित सुरक्षा ऑडिट करें

MySQL कॉलम परिभाषा

password_hash VARCHAR(255) NOT NULL  -- bcrypt: 60 चर, Argon2: ~100+ चर
  1. MySQL में कैसे चेक करें कि कौन सा डेटाबेस चुना गया है? MySQL में कैसे चेक करें कि कौन सा डेटाबेस चुना गया है?

    हम इसे DATABASE() मेथड की मदद से DUAL से चेक कर सकते हैं। मान लीजिए, हम डेटाबेस business का उपयोग कर रहे हैं। क्वेरी निम्न है − mysql> USE business; Database changed अब हम DATABASE() को DUAL से चेक कर सकते हैं कि कौन सा डेटाबेस चुना गया है। क्वेरी निम्न है − mysql> SELECT DATA

  1. MySQL डेटाबेस फाइलें कहां संग्रहीत करता है MySQL डेटाबेस फाइलें कहां संग्रहीत करता है

    यह जानने के लिए कि MySQL डेटाबेस फाइलें कहां संग्रहीत करता है, आप वेरिएबल @@datadir का उपयोग कर सकते हैं। क्वेरी इस प्रकार है - select @@datadir; निम्नलिखित आउटपुट पथ प्रदर्शित करता है - +---------------------------------------------+ | @@datadir | +---------------------------------------------+

  1. JDBC का उपयोग करके MySQL डेटाबेस में फाइल कैसे डालें/स्टोर करें? JDBC का उपयोग करके MySQL डेटाबेस में फाइल कैसे डालें/स्टोर करें?

    सामान्य तौर पर, फाइल की सामग्री MySQL डेटाबेस में Clob (TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT) डेटाटाइप के तहत संग्रहीत होती है।JDBC Clob डेटाटाइप के लिए समर्थन प्रदान करता है, डेटाबेस में टेबल में फाइल की सामग्री स्टोर करने के लिए।PreparedStatement  इंटरफ़ेस का setCharacterStream() मेथड पैरामीट