यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें
कुछ निजी व्यावसायिक डेटा, जैसे ग्राहक का मोबाइल नंबर, ईमेल पता, कार्ड नंबर आदि को एन्क्रिप्ट किया जा सकता है। एन्क्रिप्शन के बाद, इसे डेटाबेस में सिफरटेक्स्ट (गुप्त पाठ) के रूप में संग्रहीत किया जाता है।

प्लगइन स्वचालित रूप से एक एप्लिकेशन कुंजी (application key) बनाता है, जिसे /storage/apps/main/encryption-field-keys डायरेक्टरी में सहेजा जाता है।
एप्लिकेशन कुंजी फ़ाइल का नाम कुंजी ID होता है और इसका एक्सटेंशन .key होता है। कृपया फ़ाइल का नाम अपनी मर्ज़ी से न बदलें।
कृपया एप्लिकेशन कुंजी फ़ाइल को सुरक्षित रखें। यदि आप एप्लिकेशन कुंजी फ़ाइल खो देते हैं, तो एन्क्रिप्टेड डेटा को डिक्रिप्ट नहीं किया जा सकेगा।
यदि किसी सब-एप्लिकेशन (sub-application) द्वारा प्लगइन सक्षम किया गया है, तो कुंजी डिफ़ॉल्ट रूप से /storage/apps/${सब-एप्लिकेशन नाम}/encryption-field-keys डायरेक्टरी में सहेजी जाती है।
यह एनवेलप एन्क्रिप्शन (Envelope Encryption) विधि का उपयोग करता है।

एप्लिकेशन कुंजी बनाता है, जिसे Base64 एन्कोडिंग में डिफ़ॉल्ट स्टोरेज डायरेक्टरी में सहेजा जाता है।फ़ील्ड कुंजी (field key) जनरेट की जाती है। फिर इसे एप्लिकेशन कुंजी और एक रैंडम रूप से जनरेट किए गए 16-बिट फ़ील्ड एन्क्रिप्शन वेक्टर (field encryption vector) का उपयोग करके एन्क्रिप्ट किया जाता है (AES एन्क्रिप्शन एल्गोरिथम), और fields टेबल के options फ़ील्ड में सहेजा जाता है।fields टेबल के options फ़ील्ड से एन्क्रिप्टेड फ़ील्ड कुंजी और फ़ील्ड एन्क्रिप्शन वेक्टर प्राप्त करते हैं।एप्लिकेशन कुंजी और फ़ील्ड एन्क्रिप्शन वेक्टर का उपयोग करके एन्क्रिप्टेड फ़ील्ड कुंजी को डिक्रिप्ट किया जाता है। फिर, फ़ील्ड कुंजी और एक रैंडम रूप से जनरेट किए गए 16-बिट डेटा एन्क्रिप्शन वेक्टर (data encryption vector) का उपयोग करके डेटा को एन्क्रिप्ट किया जाता है (AES एन्क्रिप्शन एल्गोरिथम)।फ़ील्ड कुंजी का उपयोग करके डेटा पर हस्ताक्षर किए जाते हैं (HMAC-SHA256 डाइजेस्ट एल्गोरिथम)। इसे Base64 एन्कोडिंग में एक स्ट्रिंग में बदला जाता है (डेटा हस्ताक्षर (data signature) का उपयोग बाद में डेटा पुनर्प्राप्ति के लिए किया जाता है)।डेटा एन्क्रिप्शन वेक्टर और एन्क्रिप्टेड डेटा सिफरटेक्स्ट (data ciphertext) को बाइनरी रूप से जोड़ा जाता है, फिर Base64 एन्कोडिंग में एक स्ट्रिंग में बदला जाता है।डेटा हस्ताक्षर की Base64-एन्कोडेड स्ट्रिंग और जोड़ी गई डेटा सिफरटेक्स्ट की Base64-एन्कोडेड स्ट्रिंग को . विभाजक का उपयोग करके जोड़ा जाता है।यदि आप एक कस्टम एप्लिकेशन कुंजी निर्दिष्ट करना चाहते हैं, तो ENCRYPTION_FIELD_KEY_PATH एनवायरनमेंट वैरिएबल सेट करें। प्लगइन उस पाथ पर स्थित फ़ाइल को एप्लिकेशन कुंजी के रूप में लोड करेगा।
एप्लिकेशन कुंजी फ़ाइल के लिए आवश्यकताएँ:
.key होना चाहिए।
एन्क्रिप्टेड फ़ील्ड केवल निम्न का समर्थन करते हैं: बराबर, बराबर नहीं, मौजूद है, मौजूद नहीं है।

फ़िल्टरिंग वर्कफ़्लो:
फ़ील्ड कुंजी प्राप्त करें, और एप्लिकेशन कुंजी का उपयोग करके इसे डिक्रिप्ट करें।फ़ील्ड कुंजी का उपयोग करके हस्ताक्षर करें (HMAC-SHA256 डाइजेस्ट एल्गोरिथम)।. विभाजक के साथ जोड़ें, और डेटाबेस में एन्क्रिप्टेड फ़ील्ड पर प्रीफ़िक्स-मैच क्वेरी करें।
nocobase key-rotation कमांड का उपयोग करने से पहले, सुनिश्चित करें कि एप्लिकेशन ने इस प्लगइन को लोड कर लिया है।
जब किसी एप्लिकेशन को नए एनवायरनमेंट में माइग्रेट किया जाता है और आप पुराने एनवायरनमेंट के समान कुंजी का उपयोग जारी नहीं रखना चाहते हैं, तो आप एप्लिकेशन कुंजी को बदलने के लिए nocobase key-rotation कमांड का उपयोग कर सकते हैं।
कुंजी रोटेशन कमांड चलाने के लिए पुराने एप्लिकेशन की एप्लिकेशन कुंजी निर्दिष्ट करना आवश्यक है। कमांड निष्पादित होने के बाद, एक नई एप्लिकेशन कुंजी जनरेट की जाएगी और डिफ़ॉल्ट डायरेक्टरी में (Base64-एन्कोडेड) सहेजी जाएगी।
यदि किसी सब-एप्लिकेशन की एप्लिकेशन कुंजी को बदलना है, तो --app-name पैरामीटर जोड़ें और सब-एप्लिकेशन का नाम निर्दिष्ट करें: