swift एन्क्रिप्टेड डेटा को स्ट्रिंग में परिवर्तित नहीं किया जा सकता



encryption (1)

मैं RNCryptor का उपयोग करने के लिए सीखने की कोशिश कर रहा हूँ यहां मैं क्या उपयोग कर रहा हूं:

let key = "1234"
let original_text = "hello"
let data = original_text.data(using: .utf8)!
let encrypted_data = RNCryptor.encrypt(data: data, withPassword: key)

print(String(data: encrypted_data, encoding: .utf8))

यह 'निल' प्रिंट करता है मैं encrypted_data को स्ट्रिंग में कैसे परिवर्तित कर सकता हूं?

इसके अलावा, यह काम करता है :

try! print(String(data: RNCryptor.decrypt(data: encrypted_data, withPassword: key), encoding: .utf8))

लेकिन यह मूल पाठ है और सिफर पाठ नहीं है।


एन्क्रिप्टेड डेटा एक बाइनरी ब्लॉब है, और ज्यादातर मामलों में मान्य UTF-8 अनुक्रम नहीं है। इसलिए एक स्ट्रिंग में रूपांतरण

String(data: encrypted_data, encoding: .utf8)

असफल और रिटर्न nil यदि आप एन्क्रिप्टेड डेटा की स्ट्रिंग का प्रतिनिधित्व करना चाहते हैं तो आप बेस64 एन्कोडिंग (उदाहरण के लिए) का उपयोग कर सकते हैं:

print(encrypted_data.base64EncodedString())

या, का उपयोग कर

extension Data {
    func hexEncodedString() -> String {
        return map { String(format: "%02hhx", $0) }.joined()
    }
}

हेक्स-एन्कोडेड स्ट्रिंग के रूप में , हेक्स स्ट्रिंग को स्विफ्ट में बदलने के लिए कैसे करें :

print(encrypted_data.hexEncodedString())




encryption