2011-09-18 20 views
13

तो मैं इंटरनेट ब्राउज़ कर रहा हूं, और MySQL बिल्ट-इन फ़ंक्शन AES_ENCRYPT में आया था। यह उपयोग करने में बहुत मुश्किल प्रतीत नहीं होता है, लेकिन कुछ स्रोत मुझे एन्क्रिप्टेड डेटा को VARCHAR के रूप में स्टोर करने के लिए कहते हैं, और कुछ इसे एक ब्लॉब के रूप में स्टोर करने के लिए कहते हैं। मुझे एन्क्रिप्टेड डेटा को किस रूप में स्टोर करना चाहिए?MySQL - AES_Encrypted डेटा को कैसे स्टोर करें?

+0

क्या कोई मेरी मदद कर सकता है? –

+1

सावधान रहें कि MySQL ईसीबी मोड में एईएस का उपयोग करता है। लंबी तारों के लिए नमक के साथ उप-उपसर्ग उपसर्ग के लिए mysql के बाहर अपना एन्क्रिप्शन करें। देखें: http://en.m.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 यह देखने के लिए कि यह एक समस्या क्यों है। – Johan

उत्तर

18

कई एन्क्रिप्शन और संपीड़न फ़ंक्शन स्ट्रिंग लौटाते हैं जिसके परिणामस्वरूप मनमाने ढंग से बाइट मान हो सकते हैं। यदि आप इन परिणामों को स्टोर करना चाहते हैं, तो वर्बिनरी या बीएलओबी बाइनरी स्ट्रिंग डेटा प्रकार वाले कॉलम का उपयोग करें। यह पिछली जगह हटाने या चरित्र सेट रूपांतरण के साथ संभावित समस्याओं से बच जाएगा जो डेटा मानों को बदल देगा, जैसे कि यदि आप एक गैर-बाइनरी स्ट्रिंग डेटा प्रकार (CHAR, VARCHAR, TEXT) का उपयोग करते हैं तो हो सकता है।

स्रोत: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html

+1

धन्यवाद, मैं देखता हूं कि क्या ब्लॉग काम करते हैं। –

0

आप बाइनरी का उपयोग कर सकते हैं। STRING में बिनरी। इसे काम करना है। मैं इसका उपयोग कर रहा हूँ। अगर यह काम नहीं कर रहा है तो मुझे जवाब लिखें।

0

मैंने हमेशा MySQL में संग्रहीत एन्क्रिप्टेड डेटा में ब्लॉब्स का उपयोग किया है।

1

आप VARCHAR उपयोग करने के लिए है, न कि ब्लॉब से, फिर Base64 को एन्क्रिप्टेड बाइनरी जो केवल प्रिंट करने योग्य पात्रों का उपयोग करता है और सुरक्षित रूप से VARCHAR के रूप में जमा किया जा सकता है परिवर्तित की जरूरत है। निस्संदेह आपको इसे वापस करने से पहले बेस 64 से बाइनरी में परिवर्तित करने की आवश्यकता होगी।

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