Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
git-crypt — गिट में पारदर्शी फ़ाइल एन्क्रिप्शन | Kitploit
उपकरण/GitHubGitHub/agwa/git-crypt
प्रमाणीकरण और प्राधिकरणएन्क्रिप्शन/डिक्रिप्शन उपकरणडेटा निष्कासनक्रिप्टोग्राफीसीक्रेट डिटेक्शनआपूर्ति श्रृंखला सुरक्षा
GitHubagwa/git-crypt

git-crypt

गिट में पारदर्शी फ़ाइल एन्क्रिप्शन

रिपॉजिटरी देखें
9.8k5381111 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट

git-crypt - git में पारदर्शी फ़ाइल एन्क्रिप्शन

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

git-crypt को Andrew Ayer ([email protected]) ने लिखा है। अधिक जानकारी के लिए, https://www.agwa.name/projects/git-crypt देखें।

git-crypt बनाना

INSTALL.md फ़ाइल देखें।

git-crypt का उपयोग करना

git-crypt का उपयोग करने के लिए रिपॉजिटरी कॉन्फ़िगर करें:

root@kitploit:~
cd repo
git-crypt init

एक .gitattributes फ़ाइल बनाकर एन्क्रिप्ट करने के लिए फ़ाइलें निर्दिष्ट करें:

root@kitploit:~
secretfile filter=git-crypt diff=git-crypt
*.key filter=git-crypt diff=git-crypt
secretdir/** filter=git-crypt diff=git-crypt

.gitignore फ़ाइल की तरह, यह वाइल्डकार्ड से मैच कर सकता है और इसे रिपॉजिटरी में चेक इन किया जाना चाहिए। .gitattributes के बारे में अधिक जानकारी के लिए नीचे देखें। सुनिश्चित करें कि आप गलती से .gitattributes फ़ाइल (या अन्य git फ़ाइलें जैसे .gitignore या .gitmodules) को एन्क्रिप्ट नहीं करते हैं। सुनिश्चित करें कि आपके .gitattributes नियम संवेदनशील फ़ाइलें जोड़ने से पहले लागू हों, अन्यथा वे फ़ाइलें एन्क्रिप्ट नहीं होंगी!

रिपॉजिटरी को दूसरों (या स्वयं) के साथ GPG का उपयोग करके साझा करें:

root@kitploit:~
git-crypt add-gpg-user USER_ID

USER_ID एक कुंजी आईडी, एक पूर्ण फ़िंगरप्रिंट, एक ईमेल पता, या कोई अन्य चीज़ हो सकती है जो GPG को एक सार्वजनिक कुंजी की विशिष्ट पहचान कराती है (gpg मैन पेज में "HOW TO SPECIFY A USER ID" देखें)। ध्यान दें: git-crypt add-gpg-user आपकी रिपॉजिटरी की जड़ के .git-crypt निर्देशिका में एक GPG-एन्क्रिप्टेड कुंजी फ़ाइल जोड़ेगा और कमिट करेगा।

वैकल्पिक रूप से, आप एक सममित गुप्त कुंजी निर्यात कर सकते हैं, जिसे आपको सहयोगियों तक सुरक्षित रूप से पहुँचाना होगा (GPG आवश्यक नहीं है, और आपकी रिपॉजिटरी में कोई फ़ाइल नहीं जोड़ी जाती है):

root@kitploit:~
git-crypt export-key /path/to/key

एन्क्रिप्टेड फ़ाइलों वाले रिपॉजिटरी को क्लोन करने के बाद, GPG से अनलॉक करें:

root@kitploit:~
git-crypt unlock

या एक सममित कुंजी के साथ:

root@kitploit:~
git-crypt unlock /path/to/key

आपको बस इतना करना है - git-crypt सेट अप होने के बाद (git-crypt init या git-crypt unlock के साथ), आप सामान्य रूप से git का उपयोग कर सकते हैं - एन्क्रिप्शन और डिक्रिप्शन पारदर्शी रूप से होता है।

वर्तमान स्थिति

git-crypt का नवीनतम संस्करण 0.8.0 है, जो 2025-09-23 को जारी किया गया था। git-crypt का उद्देश्य बग-मुक्त और विश्वसनीय होना है, जिसका अर्थ है कि इसे क्रैश नहीं होना चाहिए, खराब नहीं होना चाहिए, या आपके गोपनीय डेटा को उजागर नहीं करना चाहिए। हालाँकि, यह अभी तक परिपक्वता तक नहीं पहुँचा है, जिसका अर्थ है कि यह उतना प्रलेखित, सुविधासंपन्न या उपयोग में आसान नहीं है जितना होना चाहिए। इसके अतिरिक्त, संस्करण 1.0 से पहले पश्चगामी-असंगत परिवर्तन पेश किए जा सकते हैं।

सुरक्षा

git-crypt अन्य पारदर्शी git एन्क्रिप्शन सिस्टम की तुलना में अधिक सुरक्षित है। git-crypt फ़ाइलों को CTR मोड में AES-256 का उपयोग करके एन्क्रिप्ट करता है जिसमें फ़ाइल के SHA-1 HMAC से व्युत्पन्न एक सिंथेटिक IV होता है। ऑपरेशन का यह मोड निर्धारणात्मक चुने हुए-प्लेनटेक्स्ट हमले के तहत साबित करने योग्य रूप से अर्थगत रूप से सुरक्षित है। इसका मतलब है कि यद्यपि एन्क्रिप्शन निर्धारणात्मक है (जो आवश्यक है ताकि git यह बता सके कि कोई फ़ाइल बदली है या नहीं), यह इस बात से परे कोई जानकारी लीक नहीं करता है कि दो फ़ाइलें समान हैं या नहीं। पारदर्शी git एन्क्रिप्शन के अन्य प्रस्ताव निश्चित IV के साथ ECB या CBC का उपयोग करते हैं। ये सिस्टम अर्थगत रूप से सुरक्षित नहीं हैं और जानकारी लीक करते हैं।

सीमाएं

git-crypt git फ़िल्टर पर निर्भर करता है, जिन्हें एन्क्रिप्शन को ध्यान में रखकर डिज़ाइन नहीं किया गया था। इसलिए, git-crypt किसी रिपॉजिटरी की अधिकांश या सभी फ़ाइलों को एन्क्रिप्ट करने के लिए सबसे अच्छा उपकरण नहीं है। git-crypt वास्तव में वहाँ चमकता है जहाँ आपकी अधिकांश रिपॉजिटरी सार्वजनिक है, लेकिन आपके पास कुछ फ़ाइलें (शायद *.key नाम की निजी कुंजियाँ, या API क्रेडेंशियल वाली फ़ाइल) हैं जिन्हें आपको एन्क्रिप्ट करने की आवश्यकता है। पूरी रिपॉजिटरी को एन्क्रिप्ट करने के लिए, git-remote-gcrypt जैसी प्रणाली का उपयोग करने पर विचार करें। (नोट: git-remote-gcrypt की सुरक्षा का कोई समर्थन नहीं किया गया है।)

git-crypt फ़ाइल नाम, कमिट संदेश, सिम्लिंक लक्ष्य, गिटलिंक या अन्य मेटाडेटा को एन्क्रिप्ट नहीं करता है।

git-crypt यह नहीं छिपाता है कि कोई फ़ाइल कब बदलती है या नहीं बदलती है, फ़ाइल की लंबाई, या तथ्य यह है कि दो फ़ाइलें समान हैं (ऊपर "सुरक्षा" अनुभाग देखें)।

git-crypt पहले से दी गई एन्क्रिप्टेड रिपॉजिटरी तक पहुँच को रद्द करने का समर्थन नहीं करता है। यह मल्टी-यूज़र GPG मोड (add-gpg-user को पूरक करने के लिए कोई del-gpg-user कमांड नहीं है) और सममित कुंजी मोड (कुंजी को घुमाने के लिए कोई समर्थन नहीं है) दोनों पर लागू होता है। ऐसा इसलिए है क्योंकि यह ऐतिहासिक डेटा के संदर्भ में एक स्वाभाविक रूप से जटिल समस्या है। उदाहरण के लिए, भले ही इतिहास में किसी बिंदु पर कुंजी को घुमाया गया हो, पिछली कुंजी वाला उपयोगकर्ता अभी भी पिछले रिपॉजिटरी इतिहास तक पहुँच सकता है। इस समस्या पर https://github.com/AGWA/git-crypt/issues/47 में अधिक विस्तार से चर्चा की गई है।

git-crypt से एन्क्रिप्ट की गई फ़ाइलें संपीड़ित करने योग्य नहीं हैं। एन्क्रिप्टेड फ़ाइल में सबसे छोटा परिवर्तन भी git को केवल डेल्टा के बजाय पूरी बदली हुई फ़ाइल को संग्रहीत करने के लिए मजबूर करता है।

हालाँकि git-crypt व्यक्तिगत फ़ाइल सामग्री को SHA-1 HMAC से सुरक्षित करता है, git-crypt का सुरक्षित रूप से उपयोग तब तक नहीं किया जा सकता जब तक कि पूरी रिपॉजिटरी को छेड़छाड़ से सुरक्षित नहीं किया जाता है (एक हमलावर जो आपकी रिपॉजिटरी को बदल सकता है, वह एन्क्रिप्शन को अक्षम करने के लिए आपकी .gitattributes फ़ाइल को बदल सकता है)। यदि आवश्यक हो, तो अखंडता के लिए केवल git-crypt पर निर्भर रहने के बजाय हस्ताक्षरित टैग जैसी git सुविधाओं का उपयोग करें।

git-crypt से एन्क्रिप्ट की गई फ़ाइलों को git-apply से पैच नहीं किया जा सकता, जब तक कि पैच स्वयं एन्क्रिप्टेड न हो। एन्क्रिप्टेड पैच उत्पन्न करने के लिए, git diff --no-textconv --binary का उपयोग करें। वैकल्पिक रूप से, आप पैच कमांड का उपयोग करके git के बाहर एक प्लेनटेक्स्ट पैच लागू कर सकते हैं।

git-crypt कुछ तृतीय-पक्ष git GUI, जैसे Atlassian SourceTree और GitHub for Mac के साथ विश्वसनीय रूप से काम नहीं करता है। फ़ाइलें अनएन्क्रिप्टेड अवस्था में रह सकती हैं।

Gitattributes फ़ाइल

.gitattributes फ़ाइल gitattributes(5) मैन पेज में प्रलेखित है। फ़ाइल पैटर्न प्रारूप वही है जो .gitignore द्वारा उपयोग किया जाता है, जैसा कि gitignore(5) मैन पेज में प्रलेखित है, इस अपवाद के साथ कि केवल एक निर्देशिका निर्दिष्ट करना (जैसे /dir/) उसके नीचे की सभी फ़ाइलों को एन्क्रिप्ट करने के लिए पर्याप्त नहीं है।

यह भी ध्यान दें कि पैटर्न dir/* dir/ की उप-निर्देशिकाओं के अंतर्गत फ़ाइलों से मेल नहीं खाता है। संपूर्ण उप-वृक्ष dir/ को एन्क्रिप्ट करने के लिए, dir/** का उपयोग करें:

root@kitploit:~
dir/** filter=git-crypt diff=git-crypt

.gitattributes फ़ाइल को एन्क्रिप्ट नहीं किया जाना चाहिए, इसलिए सुनिश्चित करें कि वाइल्डकार्ड गलती से इससे मेल न खाएँ। यदि आवश्यक हो, तो आप .gitattributes को इस प्रकार एन्क्रिप्शन से बाहर कर सकते हैं:

root@kitploit:~
.gitattributes !filter !diff
टूल डाउनलोड करें