2011-04-01 16 views
6

मैं डेटाबेस में पाठ संग्रहीत करने और इसे एन्क्रिप्ट करने का सबसे अच्छा तरीका जानना चाहता हूं ताकि अन्य (व्यवस्थापक) इसे पढ़ने से रोका जा सके। मैं उपयोगकर्ताओं को सादे पाठ के पैराग्राफ (अप-टू) पैराग्राफ लिखने और फिर डेटाबेस में संग्रहीत करने की अनुमति दे रहा हूं। यह पाठ तब उपयोगकर्ता को उनके खाते में प्रदर्शित किया जाता है। इसका अर्थ यह है कि जब मैंने इसे एन्क्रिप्ट किया है और इसे डेटाबेस में संग्रहीत किया है तो मुझे डेटा को डिक्रिप्ट करने में सक्षम होना होगा। mysql डेटाबेस में स्टोर करने के लिए पाठ को एन्क्रिप्ट करने का सबसे अच्छा तरीका

धन्यवाद

+2

यहां पढ़ें: http://stackoverflow.com/questions/1289061/best-way-to-use-php-to-encrypt-and-decrypt – Chris

उत्तर

1

AES_ENCRYPT और AES_DECRYPT एन्क्रिप्ट/कोड अपने आप को लिखे बिना तार को डिक्रिप्ट करने के आसान तरीके, MySQL 5 ऊपर की तरफ में उपलब्ध हैं (मैं PHP का उपयोग प्रोजेक्ट बनाया हुआ है)।

पता है कि AES_ENCRYPT के उत्पादन में एक द्विआधारी स्ट्रिंग है, जो (सबसे अधिक संभावना उचित एक BLOB होगा) के बजाय इस तरह के TEXT या VARCHAR के रूप में पाठ प्रकार की एक बाइनरी डेटा प्रकार के स्तंभों में संग्रहित किया जा करने की जरूरत है हो सकता है कि तुम करोगी आमतौर पर पाठ डेटा के लिए उपयोग करें।

समस्या यह है कि आपको एन्क्रिप्शन कुंजी कहीं स्टोर करना होगा, और आपको किसी भी तरह से व्यवस्थापक को इसे एक्सेस करने से रोकना होगा। मुझे नहीं पता कि यह संभव होगा (का व्यवस्थापक बिल्कुल?)

+0

आप स्टोर करने, खींचने, घूमने और अन्यथा प्रबंधित करने का प्रस्ताव कैसे देते हैं एन्क्रिप्शन कुंजी, इस तरह से कि अन्य एन्क्रिप्टेड डेटा नहीं पढ़ सकते हैं? – yfeldblum

+0

@ जस्टिस: मैं नहीं करता हूं। और प्रश्न में आवेदन के बारे में अधिक विस्तृत ज्ञान के बिना ऐसा प्रस्ताव बनाना असंभव होगा। – Jon

+0

@ जस्टिस - यह आवश्यकताओं पर निर्भर करता है - आप "दूसरों" का क्या मतलब है?यदि सर्वर पर पूर्ण पहुंच वाले लोग, क्लाइंट-साइड (जावास्क्रिप्ट) एन्क्रिप्शन का उपयोग करने का एकमात्र विकल्प है। और फिर भी वे डेटा एन्क्रिप्ट नहीं करने के लिए जावास्क्रिप्ट कोड को संशोधित कर सकते हैं, उदाहरण के लिए। –

2

आप जो देख रहे हैं MCrypt है। यदि आप डेटा को वास्तव में सुरक्षित रखना चाहते हैं तो आपको परिवहन के लिए HTTPS का उपयोग करने की आवश्यकता होगी क्योंकि एक बार PHP स्क्रिप्ट ने सिफर टेक्स्ट को डिक्रिप्ट कर दिया है (जब उपयोगकर्ता टेक्स्ट तक पहुंच रहा है) सादा पाठ सर्वर के एनआईसी के माध्यम से भेजा जाता है । तो एक चालाक व्यवस्थापक या हमलावर सिर्फ इंटरफ़ेस पर ट्रैफिक को छीन सकता है और यातायात को लॉग कर सकता है।

1

वास्तव में, आप व्यवस्थापक को इन ग्रंथों को देखने से नहीं रोक सकते क्योंकि वह एन्क्रिप्शन पासवर्ड भी पढ़ सकते हैं और उन्हें डिक्रिप्ट कर सकते हैं।

+0

+1 यदि वह तकनीकी (PHP) व्यक्ति –

+0

वास्तव में है? केवल अगर आप पासवर्ड को ही स्टोर करते हैं। यदि आप केवल पासवर्ड हैश स्टोर करते हैं तो व्यवस्थापक टेक्स्ट को डिक्रिप्ट करने में सक्षम नहीं होगा। –

-1
  1. एक बचाने कनेक्शन (https) का उपयोग करें ताकि अपना व्यवस्थापक पासवर्ड लॉग से नहीं मिल सकता है।
  2. उपयोगकर्ता पासवर्ड के साथ डेटा डिक्रिप्ट करने के लिए MCript का उपयोग करें।
  3. उपयोगकर्ताओं के साथ डेटा पासवर्ड डिक्रिप्ट करें।

वहाँ हालांकि एक बड़ा दोष यह है:

आप सत्र में cleartext में उन पासवर्ड स्टोर करने के लिए तो आप परवाह है कि सत्र डेटा, लॉग में संग्रहीत नहीं है डेटाबेस, आदि लेने चाहिए होगा ..

यदि आपके व्यवस्थापक के पास PHP कोड तक पहुंच है तो यह हैक करने के लिए सेकंड का मामला है।

एकमात्र मामला जहां यह काम करेगा, यह है कि यदि आपका व्यवस्थापक डेटाबेस और बैकएंड तक पहुंच सकता है लेकिन कोड नहीं।

संबंधित मुद्दे

 संबंधित मुद्दे