CryptoKit Swift: पूर्ण गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

CryptoKit क्या है और इसकी आवश्यकता क्यों है?

CryptoKit Apple द्वारा विकसित एक क्रिप्टोग्राफिक फ्रेमवर्क है जो सीधे Swift इकोसिस्टम में बिल्ट-इन है। यह iOS 13, macOS 10.15, watchOS 6 और tvOS 13 से उपलब्ध है। थर्ड-पार्टी लाइब्रेरीज़ के विपरीत, CryptoKit एक नेटिव सॉल्यूशन है जो उच्च प्रदर्शन, सुरक्षा और Secure Enclave की-मैनेजमेंट सिस्टम के साथ पूर्ण एकीकरण सुनिश्चित करता है।

CryptoKit की आवश्यकता क्यों है? आधुनिक ऐप डेवलपमेंट में डेटा सुरक्षा सबसे महत्वपूर्ण है। CryptoKit डेवलपर्स को एक सरल लेकिन शक्तिशाली इंटरफ़ेस प्रदान करता है:

  • डेटा हैशिंग (SHA-256, SHA-384, SHA-512)
  • सिमेट्रिक एन्क्रिप्शन (AES-GCM, ChaCha20-Poly1305)
  • असिमेट्रिक एन्क्रिप्शन (Curve25519, P-256, P-384, P-521)
  • डिजिटल सिग्नेचर (EdDSA, ECDSA)
  • क्रिप्टोग्राफिक रैंडम नंबर जनरेशन
  • की एक्सचेंज (Elliptic Curve Diffie-Hellman)

यह लाइब्रेरी डेवलपर की गलतियों को कम करने के लिए डिज़ाइन की गई है: यह डिफ़ॉल्ट रूप से सुरक्षित इम्प्लीमेंटेशन का उपयोग करती है, मेमोरी को ऑटोमैटिकली मैनेज करती है, और पुराने या असुरक्षित एल्गोरिदम (जैसे MD5 या SHA-1) के उपयोग को रोकती है।

CryptoKit की इंस्टॉलेशन

चूंकि CryptoKit Apple की स्टैंडर्ड लाइब्रेरी का हिस्सा है, इसे पैकेज मैनेजर (CocoaPods, Swift Package Manager या Carthage) के माध्यम से इंस्टॉल करने की आवश्यकता नहीं है। बस आपका प्रोजेक्ट iOS 13+ या macOS 10.15+ को टार्गेट करना चाहिए।

महत्वपूर्ण: यदि आप पुराने OS वर्जन के लिए डेवलप कर रहे हैं, तो CryptoKit उपलब्ध नहीं होगा। ऐसे में CommonCrypto (C-लेवल) या थर्ड-पार्टी लाइब्रेरी (जैसे CryptoSwift) का उपयोग करें।

कोड में CryptoKit की उपलब्धता जांचने के लिए:

import CryptoKit

if #available(iOS 13.0, macOS 10.15, *) {
    // CryptoKit के साथ आपका कोड
} else {
    // CommonCrypto पर फॉलबैक
}

कोड उदाहरण के साथ त्वरित शुरुआत

आइए एक सरल उदाहरण देखें: स्ट्रिंग हैशिंग और सिमेट्रिक एन्क्रिप्शन।

import CryptoKit
import Foundation

// 1. हैशिंग
let inputString = "Hello, CryptoKit!"
let inputData = Data(inputString.utf8)
let hash = SHA256.hash(data: inputData)
print("SHA256 हैश: \(hash.compactMap { String(format: "%02x", $0) }.joined())")

// 2. सिमेट्रिक एन्क्रिप्शन (AES-GCM)
let key = SymmetricKey(size: .bits256) // 256-बिट की जनरेट करें
let plaintext = "गुप्त संदेश".data(using: .utf8)!

do {
    let sealedBox = try AES.GCM.seal(plaintext, using: key)
    print("एन्क्रिप्टेड डेटा: \(sealedBox.ciphertext.base64EncodedString())")
    
    // डिक्रिप्शन
    let openedBox = try AES.GCM.open(sealedBox, using: key)
    let decryptedString = String(data: openedBox, encoding: .utf8)!
    print("डिक्रिप्टेड संदेश: \(decryptedString)")
} catch {
    print("एन्क्रिप्शन में त्रुटि: \(error)")
}

CryptoKit के मुख्य मेथड और फंक्शन

नीचे CryptoKit के 10 प्रमुख फंक्शन विस्तृत विवरण, पैरामीटर और उदाहरणों के साथ दिए गए हैं।

1. SHA256.hash(data:)

विवरण: दिए गए डेटा का SHA-256 हैश कंप्यूट करता है। SHA256Digest ऑब्जेक्ट रिटर्न करता है।

पैरामीटर:

  • data: Data — हैश करने के लिए मूल डेटा।

उदाहरण:

let data = "नमूना डेटा".data(using: .utf8)!
let digest = SHA256.hash(data: data)
print(digest.description) // आउटपुट: SHA256 digest: 8f4343... (64 कैरेक्टर)

2. SHA384.hash(data:)

विवरण: SHA256 के समान, लेकिन 384-बिट डाइजेस्ट का उपयोग करता है। अधिक सुरक्षित, लेकिन धीमा।

पैरामीटर: SHA256 के समान।

उदाहरण:

let digest384 = SHA384.hash(data: data)
print(digest384)

3. SHA512.hash(data:)

विवरण: 512-बिट हैश जनरेट करता है। सबसे सुरक्षित SHA वेरिएंट।

पैरामीटर: समान।

उदाहरण:

let digest512 = SHA512.hash(data: data)
print(digest512)

4. AES.GCM.seal(_:using:nonce:)

विवरण: AES-GCM मोड में डेटा को एन्क्रिप्ट करता है। ऑथेंटिकेटेड एन्क्रिप्शन प्रदान करता है।

पैरामीटर:

  • plaintext: Data — एन्क्रिप्ट करने का डेटा
  • using: SymmetricKey — एन्क्रिप्शन की
  • nonce: AES.GCM.Nonce? — वैकल्पिक, डिफ़ॉल्ट रूप से ऑटो-जनरेटेड

उदाहरण: ऊपर देखें।

5. AES.GCM.open(_:using:)

विवरण: AES.GCM.seal द्वारा बनाए गए सीलबंद बॉक्स को डिक्रिप्ट और ऑथेंटिकेट करता है।

पैरामीटर:

  • sealedBox: AES.GCM.SealedBox — एन्क्रिप्टेड डेटा
  • using: SymmetricKey — वही की जिसका उपयोग एन्क्रिप्शन में किया गया था

उदाहरण: ऊपर देखें।

6. ChaChaPoly.seal(_:using:nonce:)

विवरण: ChaCha20-Poly1305 एल्गोरिदम का उपयोग करके एन्क्रिप्ट करता है। AES-GCM से तेज़ माना जाता है।

पैरामीटर: AES.GCM.seal के समान।

उदाहरण:

let chachaKey = SymmetricKey(size: .bits256)
let chachaSealed = try ChaChaPoly.seal(plaintext, using: chachaKey)

7. Curve25519.KeyAgreement.privateKey

विवरण: Curve25519 एलिप्टिक कर्व का उपयोग करके की एग्रीमेंट के लिए प्राइवेट की जनरेट करता है।

पैरामीटर: कोई नहीं (स्टैटिक प्रॉपर्टी)।

उदाहरण:

let privateKey = Curve25519.KeyAgreement.privateKey()
let publicKey = privateKey.publicKey

8. Curve25519.KeyAgreement.sharedSecretFromKeyAgreement(with:)

विवरण: दो पार्टियों के बीच शेयर्ड सीक्रेट कंप्यूट करता है।

पैरामीटर:

  • publicKeyShare: Curve25519.KeyAgreement.PublicKey — दूसरी पार्टी की पब्लिक की

उदाहरण:

let sharedSecret = try privateKey.sharedSecretFromKeyAgreement(with: otherPublicKey)

9. P256.Signing.PrivateKey()

विवरण: P-256 एलिप्टिक कर्व के लिए साइनिंग प्राइवेट की जनरेट करता है।

पैरामीटर: कोई नहीं।

उदाहरण:

let signingKey = P256.Signing.PrivateKey()
let signature = try signingKey.signature(for: data)

10. P256.Signing.PublicKey.verifySignature(_:for:)

विवरण: डिजिटल सिग्नेचर को वेरिफाई करता है।

पैरामीटर:

  • signature: P256.Signing.ECDSASignature — वेरिफाई करने का सिग्नेचर
  • data: Data — मूल डेटा

उदाहरण:

let isVerified = signingKey.publicKey.verifySignature(signature, for: data)

निष्कर्ष

CryptoKit Swift डेवलपर्स के लिए एक शक्तिशाली और सुरक्षित क्रिप्टोग्राफी टूलकिट है। इस गाइड में दिए गए उदाहरणों और मेथड्स का उपयोग करके आप अपने iOS/macOS ऐप्स में आसानी से एन्क्रिप्शन, हैशिंग और डिजिटल सिग्नेचर जोड़ सकते हैं। अधिक जानकारी के लिए Apple की आधिकारिक डॉक्यूमेंटेशन देखें।

अनुशंसाएँ