Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

तृतीय पक्ष प्रणाली में स्वचालित लॉगिन के लिए उपयोगकर्ता डेटा को एन्क्रिप्ट करना

आपने डेटाबेस में डेटा को एन्क्रिप्ट करने की सबसे बड़ी समस्या पर ठोकर खाई:

➽ चाबी कहाँ स्टोर करें?

एन्क्रिप्शन डेटा को सुरक्षित करने की समस्या को हल नहीं कर सकता है, यह केवल इसे एक कुंजी पर "केंद्रित" कर सकता है। आप जहां कहीं भी कुंजी स्टोर करते हैं, आपका एप्लिकेशन डेटा को डिक्रिप्ट करने में सक्षम होना चाहिए, इसलिए एक हमलावर भी कर सकता है। इस समस्या के दो संभावित समाधान हैं जिनके बारे में मुझे पता है:

  1. कुंजी को यथासंभव सुरक्षित स्थान पर रखें। इसका मतलब है, इसे निश्चित रूप से www-root निर्देशिका के बाहर सर्वर पर एक दुर्गम निर्देशिका में रखा जाना चाहिए। डेटा के महत्व के आधार पर, आप एन्क्रिप्शन को किसी अन्य समर्पित सर्वर से आउटसोर्स करने पर भी विचार कर सकते हैं।
  2. कुंजी को बिल्कुल भी संगृहीत न करें और इसे उपयोगकर्ता पासवर्ड से प्राप्त करें। यह वास्तव में एकमात्र सुरक्षित तरीका है, क्योंकि सर्वर तब भी डेटा को डिक्रिप्ट नहीं कर सकता है। विपक्ष निश्चित रूप से यह है कि उपयोगकर्ता को हर बार आपकी सेवा का उपयोग करने पर पासवर्ड दर्ज करने की आवश्यकता होती है। यदि उपयोगकर्ता पासवर्ड बदलता है, तो आपको सभी डेटा को फिर से एन्क्रिप्ट करना होगा। यदि उपयोगकर्ता पासवर्ड भूल जाता है, तो डेटा खो जाता है।

पी.एस. मैं पहले . डेटा को एन्क्रिप्ट करने की अनुशंसा करता हूं इसे डेटाबेस में संग्रहीत करना, क्योंकि MySQL AES_ENCRYPT IV के बिना ECB मोड का उपयोग करता है। यह एक निश्चित मूल्य की खोज करने की अनुमति देता है, लेकिन कम सुरक्षित है (मुझे पूरा यकीन है कि आप पासवर्ड से खोजना नहीं चाहते हैं)।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्लॉज में जहां एकाधिक कॉलम का उपयोग करके क्वेरी करने के लिए sqlalchemy का उपयोग करना

  2. MySQL IN क्लॉज:तर्कों की अधिकतम संख्या

  3. MySQL में सीमांकक

  4. 'System.Data.Entity.Migrations.DbMigrationsConfiguration`1' के लिए टाइप इनिशियलाइज़र ने एक अपवाद फेंका

  5. हाइव टेबल सभी प्रश्नों पर खाली परिणाम सेट कर रहा है