डेटा सुरक्षा और एन्क्रिप्शन
फाइलों को सुरक्षित करें और CryptoKit की मूल बातें सीखें।
डेटा सुरक्षा और एन्क्रिप्शन, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
iOS पर डेटा सुरक्षा
iOS डिफ़ॉल्ट रूप से disk पर मौजूद फ़ाइलों को एन्क्रिप्ट करता है, लेकिन आप डेटा सुरक्षा classes का उपयोग करके यह चुन सकते हैं कि किसी फ़ाइल की सामग्री को कब decrypt किया जा सके। ये classes फ़ाइल access को device की lock state से जोड़ती हैं, ठीक वैसे ही जैसे Keychain accessibility classes secrets के लिए करती हैं।
import Foundation
// File-level protection ties decryption to lock state.
// Set a protection class when writing sensitive files.सुरक्षा classes
मुख्य file protection levels हैं: .complete (locked अवस्था में पढ़ने योग्य नहीं), .completeUnlessOpen (lock होने पर पहले से open हो तो पढ़ने योग्य रहती है), .completeUntilFirstUserAuthentication (first unlock के बाद पढ़ने योग्य), और .none।
import Foundation
// FileProtectionType:
// .complete
// .completeUnlessOpen
// .completeUntilFirstUserAuthentication (default)
// .none
let level = FileProtectionType.complete
_ = levelसंरक्षित फ़ाइल लिखना
किसी फ़ाइल को पूरी तरह protected चिह्नित करने के लिए write options में .completeFileProtection दें। device locked होने पर OS इसकी सामग्री को आपके अपने app के लिए भी inaccessible बना देता है।
import Foundation
func writeSecure(_ data: Data, to url: URL) throws {
try data.write(
to: url,
options: [.completeFileProtection])
}मौजूदा फ़ाइलों पर सुरक्षा तय करना
आप FileManager के माध्यम से FileAttributeKey.protectionKey attribute सेट करके creation के बाद किसी फ़ाइल की protection बदल सकते हैं। आपके द्वारा प्राप्त या migrate की गई फ़ाइलों की protection कड़ी करने के लिए यह उपयोगी है।
import Foundation
func protect(_ url: URL) throws {
try FileManager.default.setAttributes(
[.protectionKey: FileProtectionType.complete],
ofItemAtPath: url.path)
}ऐप के भीतर एन्क्रिप्शन के लिए CryptoKit
जब आपको data को स्वयं encrypt करना हो — upload करने से पहले या disk protection के ऊपर एक अतिरिक्त layer जोड़ने के लिए — तब CryptoKit का उपयोग करें। यह modern, misuse-resistant primitives उपलब्ध कराता है, जिनमें सुरक्षित defaults होते हैं और AEAD ciphers के लिए IV को manually संभालने की आवश्यकता नहीं होती।
import CryptoKit
// CryptoKit offers hashing, symmetric & public-key
// crypto with safe, hard-to-misuse APIs.SHA-256 से हैश बनाना
integrity checks और fingerprints के लिए, SHA256 एक fixed-size digest बनाता है। ध्यान रखें कि hashing one-way होती है और encryption का विकल्प नहीं है — password को salt और slow KDF के बिना कभी hash न करें।
import CryptoKit
import Foundation
func fingerprint(_ data: Data) -> String {
let digest = SHA256.hash(data: data)
return digest.map { String(format: "%02x", $0) }
.joined()
}सममित keys
Symmetric encryption में एक साझा key का उपयोग होता है। SymmetricKey(size: .bits256) एक मजबूत random key बनाता है। key को कीचेन में रखें — जिस ciphertext की वह सुरक्षा करती है, उसके साथ कभी नहीं।
import CryptoKit
let key = SymmetricKey(size: .bits256)
// Persist this key in the Keychain, not in a file.
_ = keyAES-GCM से एन्क्रिप्ट करना
AES.GCM authenticated encryption है: यह data को encrypt करने के साथ tampering का पता भी लगाता है। seal एक sealed box लौटाता है, जिसमें ciphertext, nonce और authentication tag एक साथ bundled होते हैं।
import CryptoKit
import Foundation
func encrypt(_ data: Data, key: SymmetricKey)
throws -> Data {
let sealed = try AES.GCM.seal(data, using: key)
return sealed.combined! // nonce + ciphertext + tag
}decrypt करना और सत्यापित करना
decrypt करने के लिए combined data से SealedBox फिर से बनाएँ और open call करें। यदि ciphertext या tag में बदलाव किया गया हो, तो open throw करता है — authentication tag integrity की गारंटी देता है, इसलिए corrupted data कभी चुपचाप decrypt नहीं होता।
import CryptoKit
import Foundation
func decrypt(_ combined: Data, key: SymmetricKey)
throws -> Data {
let box = try AES.GCM.SealedBox(combined: combined)
return try AES.GCM.open(box, using: key)
}पासवर्ड से keys निकालना
कच्चे password को कभी key के रूप में उपयोग न करें। high-entropy inputs के लिए HKDF या password-based KDF से एक key derive करें। CryptoKit का HKDF key material को stretch और salt करके एक उचित symmetric key में बदलता है।
import CryptoKit
import Foundation
func deriveKey(from secret: Data, salt: Data)
-> SymmetricKey {
return HKDF<SHA256>.deriveKey(
inputKeyMaterial: SymmetricKey(data: secret),
salt: salt,
outputByteCount: 32)
}सुरक्षा की परतें बनाना
मजबूत apps कई layers को साथ इस्तेमाल करते हैं: डेटा सुरक्षा lock state से जुड़ी संग्रहीत फ़ाइलों को encrypt करती है, कीचेन keys को biometrics के पीछे सुरक्षित रखता है, और CryptoKit transit या cloud में मौजूद data के लिए app-level encryption जोड़ता है। हर layer अपने-आप सुरक्षित ढंग से विफल होती है।
import CryptoKit
import Foundation
// 1. Key lives in Keychain (biometric-gated)
// 2. Plaintext file written with .completeFileProtection
// 3. Uploads encrypted with AES.GCM before leaving device
let layers = "defense in depth"
_ = layersत्वरित जाँच
याद कीजिए कि ऐप-स्तरीय एन्क्रिप्शन के लिए AES-GCM को प्राथमिकता क्यों दी जाती है।
पुनरावलोकन
आपने डेटा सुरक्षा और एन्क्रिप्शन सीखा:
- फ़ाइल डेटा सुरक्षा क्लासें (
.complete,.completeUntilFirstUserAuthentication) डिस्क के डिक्रिप्शन को लॉक स्थिति से जोड़ती हैं। - CryptoKit SHA-256 हैशिंग,
SymmetricKeyजनरेट करना औरseal/openके ज़रिए AES-GCM प्रमाणित एन्क्रिप्शन उपलब्ध कराता है। - HKDF से कुंजियाँ व्युत्पन्न कीजिए; कुंजियों को कीचेन में संग्रहीत कीजिए, उन्हें कभी भी ciphertext के साथ न रखें।
- गहन सुरक्षा के लिए डेटा सुरक्षा, कीचेन और CryptoKit को परतों में इस्तेमाल कीजिए।
एआई शिक्षक के साथ Swift सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 122
- पाठ
- 409
अक्सर पूछे जाने वाले प्रश्न
क्या “डेटा सुरक्षा और एन्क्रिप्शन” पाठ निःशुल्क है?
हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “डेटा सुरक्षा और एन्क्रिप्शन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“डेटा सुरक्षा और एन्क्रिप्शन” में मैं क्या सीखूँगा?
फाइलों को सुरक्षित करें और CryptoKit की मूल बातें सीखें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“डेटा सुरक्षा और एन्क्रिप्शन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Keychain में गुप्त जानकारी सहेजना
- Keychain पहुँच नियंत्रण
- बायोमेट्रिक प्रमाणीकरण
- डेटा सुरक्षा और एन्क्रिप्शन