यह किस बारे में है
मिथ्याकरण से दस्तावेजों की रक्षा के लिए मेरी खुद की छोटी इंटरनेट परियोजना बनाने का विचार, उनके द्वारा जारी किए गए गुणवत्ता नियंत्रण निष्कर्षों के कुल मिथ्याकरण के लिए समर्पित डिक्टेक्टोस्कोपिस्ट के मंच पर एक चर्चा द्वारा प्रेरित किया गया था।
अपनी परियोजना के कार्यान्वयन के दौरान, मुझे एहसास हुआ कि मैं इलेक्ट्रॉनिक डिजिटल हस्ताक्षर की अवधारणा के लिए आया था, अर्थात्, एक साइकिल, बेशक, मैंने आविष्कार नहीं किया, लेकिन मेरे रास्ते की कहानी शिक्षाप्रद हो सकती है।
फेक के खिलाफ सुरक्षा के कार्य की प्रासंगिकता
तथ्य यह है कि कागज रहित जानकारी की हमारी सदी में, एक भी पूंजी निर्माण नहीं, चाहे वह गैस पाइपलाइन या शॉपिंग सेंटर हो, बिना बिल्ट-इन डॉक्यूमेंटेशन का पूरा सेट तैयार किए बिना, जिसमें गैर-विनाशकारी परीक्षण (दृश्य, रेडियोग्राफिक, अल्ट्रासाउंड, निष्कर्ष) शामिल हैं।

यह निष्कर्ष एक निश्चित रूप से उपयुक्तता या किसी अनहोनी पर निष्कर्ष के साथ तैयार किया गया दस्तावेज है, उदाहरण के लिए, एक वेल्ड। गैर-विनाशकारी परीक्षण सेवाओं में पैसा खर्च होता है, और अक्सर काफी विचारणीय होता है। एक बेईमान ग्राहक / मध्यस्थ एक मान्यता प्राप्त प्रयोगशाला को किराए पर ले सकता है, इससे कई राय प्राप्त कर सकता है, और काम को रोक या निलंबित कर सकता है।
दोष डिटेक्टर ऑपरेटर या प्रयोगशाला के प्रमुख क्या आश्चर्यचकित हो सकते हैं जब वे सीखते हैं कि काम की समाप्ति के बाद भी, उनकी ओर से निष्कर्ष जारी किए जाते हैं, उन्हें नकली मुहरों और जाली हस्ताक्षर पर रखा जाता है। प्रयोगशाला की प्रतिष्ठा पीड़ित है, और वास्तव में कानून का उल्लंघन किया जा रहा है। यह सिर्फ इतना है कि कई मामलों में इसके बारे में किसी को पता नहीं चलेगा।
चर्चा के भाग के रूप में - अपने दस्तावेज़ों की सुरक्षा कैसे करें, दस्तावेज़ पर एक क्यूआर कोड डालने के लिए विचार व्यक्त किया गया था, जिसमें नियंत्रण ऑब्जेक्ट की उपयुक्तता या अनपेक्षितता के बारे में निष्कर्ष संख्या, तिथि और निष्कर्ष दर्ज किया जाएगा। यह तरीका अच्छा क्यों है - दस्तावेज़ की प्रतिलिपि बनाते समय क्यूआर कोड स्पष्ट रूप से अलग-अलग रहेगा।
हालांकि, स्कैमर केवल आवश्यक सामग्री के साथ एक क्यूआर कोड उत्पन्न करने में सक्षम होंगे।
एक विचार का जन्म
और फिर एक विचार मुझ पर छा गया - एक विश्वसनीय एल्गोरिथ्म के साथ ऐसे क्यूआर कोड की सामग्री को एन्क्रिप्ट क्यों नहीं किया गया। यदि हां, तो आपको स्कैन करने के दौरान इसे डिक्रिप्ट करने का एक तरीका है, उदाहरण के लिए, स्मार्टफोन के कैमरे के माध्यम से। यहां वेब सेवा की ओर से डिक्रिप्शन करने के लिए विचार पैदा हुआ था, जो डिक्रिप्शन के लिए कुंजी संग्रहीत करेगा।
पिछली बार मैंने 2000 में नोटपैड में एक साइट बनाई थी और मैं आधुनिक साइट निर्माण तकनीकों से बहुत परिचित नहीं हूं, इसलिए मैंने Wix को चुना, यह सोचकर कि सेवा की मदद से मुझे एक डेटाबेस के साथ काम करने के लिए एक सुंदर तस्वीर और न्यूनतम संभावनाएं मिलेंगी, और Wix कोड के साथ मैं इसे एन्कोड कर दूंगा मुझे क्या चाहिए
मुझे तुरंत यह कहना होगा कि मैंने इसे बहुत कठिनाई के बिना किया और कुछ शामों में, एक शौकिया के रूप में, मैं उस समाधान को इकट्ठा करने में सक्षम था जिसे मुझे कम या ज्यादा तैयार ब्लॉकों से चाहिए था।
एन्क्रिप्शन
मैंने समाप्त एईएस 128-बिट एन्क्रिप्शन
एल्गोरिथ्म को जीथब पर जावा स्क्रिप्ट कार्यान्वयन के साथ लिया और इसे साइट के बैकेंड अनुभाग में रखा।
यह शायद नौकरी का सबसे आसान हिस्सा था। कैसे एन्क्रिप्शन खुद काम करता है मेरे लिए पूरी तरह से निर्बाध नहीं था। मुझे योजना की भव्यता की चिंता थी।
मुख्य बात यह है कि एनकोडेड टेक्स्ट को बाइट्स में अनुवाद करना न भूलें, और एचईएक्स में एन्क्रिप्शन का परिणाम है।
// Convert text to bytes var textBytes = aesjs.utils.utf8.toBytes(text); // The counter is optional, and if omitted will begin at 1 var aesCtr = new aesjs.ModeOfOperation.ctr(key, new aesjs.Counter(5)); var encryptedBytes = aesCtr.encrypt(textBytes); // To print or store the binary data, you may convert it to hex var encryptedHex = aesjs.utils.hex.fromBytes(encryptedBytes);
QR कोड जनरेशन
मैंने तैयार
एपीआई का इस्तेमाल किया।
काम करने के लिए, बस एक HTML1 ऑब्जेक्ट बनाएं - मनमाने ढंग से HTML कोड प्रदर्शित करने और एपीआई फ़ंक्शन को कॉल करने के लिए
let val = “ " $w("#html1").src = "https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=" + val.toString(); $w("#html1").show();
उपयोगकर्ताओं के साथ काम करें
Wix मूल उपयोगकर्ता पंजीकरण और प्रोफ़ाइल संपादन सुविधाओं का समर्थन करता है। उपकरण कुछ छोटी है, लेकिन काम करने योग्य है।
मुझे केवल एक फ़ील्ड जोड़ने की आवश्यकता है जो उस संगठन के नाम का वर्णन करता है जो पंजीकृत उपयोगकर्ता का प्रतिनिधित्व करता है, लेकिन यह फ़ील्ड केवल पढ़ा जाता है और यह सेवा व्यवस्थापक द्वारा भरा जाता है जब यह पुष्टि प्राप्त करता है कि पंजीकृत उपयोगकर्ता वास्तव में निर्दिष्ट संगठन का प्रतिनिधित्व करता है।
भुगतान / कार्यों के लिए मुफ्त पहुंच से जुड़े सबसे सरल तर्क को तेज करना भी आवश्यक था (प्रति माह 20 दस्तावेजों तक मुफ्त में संरक्षित किया जा सकता है) और सेवाओं के लिए भुगतान करने की अवधि।
कार्य सिद्धांत
एक अद्वितीय निजी एन्क्रिप्शन कुंजी उपयोगकर्ता के खाते के लिए बाध्य है।
लॉग-इन उपयोगकर्ता निष्कर्ष (संख्या, दिनांक, परिणाम) के बारे में जानकारी के साथ एक फ़ॉर्म भरता है:

फिर एल्गोरिथ्म एक URL लौटाता है जिसमें पाठ सिफरटेक्स्ट और सार्वजनिक कुंजी USER_ID के रूप में कार्य करता है, जैसा कि नीचे दिए गए उदाहरण में है:
https:// * * /checkqr?user=3b01b0aa-68a0-4521-ab12-f17b86d3eabc&v=1.0&text=8a026594c26be959f4280e28fe8402c1acef233e369a31613d654d3b0a5bbaca206f3058d27d2fde66b65cb64a5a6caecb69b07ad39c0015e923dad89eb723
URL एक क्यूआर कोड में बदल जाता है, जिसे उपयोगकर्ता पहले से ही अपने दस्तावेज़ पर क्लिपबोर्ड पर कॉपी करके डालता है (आप इसे स्रोत फ़ाइल में शामिल कर सकते हैं या इसे एक मुद्रित मुद्रित दस्तावेज़ पर स्टिकर के रूप में चिपका सकते हैं)।

यहां क्या महत्वपूर्ण है - इस तरह, जानकारी साइट डेटाबेस में नहीं मिलती है, लेकिन केवल इस लिंक और इस लिंक वाले एक क्यूआर कोड के रूप में बनी हुई है। इस प्रकार, संरक्षित दस्तावेज़ की सामग्री के बारे में कोई जानकारी सर्वर पर संग्रहीत नहीं है।
लिंक को पार्स करते समय साइट द्वारा कोड की जाँच की जाती है
पार्सिंग के लिए जब कोई साइट लिंक को पहचानती है, तो मैंने Wix कोड पर मदद का उपयोग किया
www.wix.com/code/reference/wix-http-functions.htmlयदि डिक्रिप्शन के दौरान कुछ गलत हुआ, तो यह हो सकता है कि मूल क्यूआर कोड में कुछ बदलाव किए गए हों
“दस्तावेज़ कोड एक त्रुटि के साथ डिक्रिप्ट किया गया था। संभव नकली। उस संगठन से संपर्क करें जिसने स्पष्टीकरण के लिए दस्तावेज़ तैयार किया है। ”
यदि डिक्रिप्शन सफलतापूर्वक पूरा हो जाता है, तो डिक्रिप्ट किए गए पाठ को प्रयोगशाला, दस्तावेज़ संख्या, जारी करने की तारीख और परिणाम के नाम से जारी किया जाता है, और उपयोगकर्ता को डिक्रिप्शन परिणाम की तुलना करने के लिए कहा जाता है कि वह वास्तविक दस्तावेज़ पर क्या देखता है।
निष्कर्ष
विचार के जन्म से, कई तैयार ईंटों की मदद से, मैं एक कार्यशील कार्यान्वयन के लिए आया था।
मैं आपको उस विचार पर चर्चा करने के लिए आमंत्रित करता हूं जो मैं आया था, मेरी सेवा का परीक्षण / हैक करने का प्रयास।
जो पूरा होना बाकी है
लागू होने के परिणामों के बारे में हाइबर पर लिखें- यह समझें कि यदि पहले ही लिंक लिंक एक बार हो चुका हो, तो क्वेरी को कैसे रीसेट करें
- यह जानने के लिए कि सिफरटेक्स्ट को कैसे सिकोड़ें, क्योंकि जब एक लंबा URL एनकोड किया जाता है, तो QR कोड का आकार बहुत बड़ा होता है
- क्लिपबोर्ड में कोड की प्रतिलिपि बनाने की क्षमता जोड़ें या इसे एक बटन के क्लिक पर ई-मेल द्वारा भेजें (जब तक मुझे पता नहीं चला कि इसे जावास्क्रिप्ट में कैसे किया जाए)
- मोबाइल संस्करण के साथ काम में सुधार करें
संभावित आलोचना के लिए प्रारंभिक प्रतिक्रिया:
क्या प्रयोगशाला के लिए अपनी वेबसाइट पर निष्कर्षों का रजिस्टर रखना आसान नहीं है, और क्या इसी तरह का क्यूआर टैग इस रजिस्ट्री को आगे बढ़ाएगा या रिपोर्ट की एक प्रति भी प्रदर्शित करेगा?
यह किया जा सकता है, लेकिन महत्वपूर्ण मैनुअल काम या मेरे द्वारा विकसित अपने स्वयं के आईटी समाधान की शुरुआत की आवश्यकता होगी, लेकिन यह स्पष्ट रूप से तैयार समाधान का उपयोग करने से अधिक खर्च होगा।
इस तरह के रजिस्टर को पूरी तरह से सार्वजनिक रूप से सुलभ बनाना असंभव है, क्योंकि जानकारी सार्वजनिक नहीं है, लेकिन केवल ठेकेदार, ग्राहक और रोस्तेखनादज़ोर द्वारा विचार किया जा सकता है।