【问题标题】:How to use RNCryptor and Firebase togeather - Swift & Objective C如何一起使用 RNCryptor 和 Firebase - Swift & Objective C
【发布时间】:2016-07-04 11:59:04
【问题描述】:

可以同时使用 RNCryptor 和 firebase 吗?您不能将 NSData 存储到 firebase 中,而这就是 RNCryptor 使用的?

我还可以通过哪些其他方式为后端加密用户数据?

【问题讨论】:

    标签: objective-c swift firebase rncryptor


    【解决方案1】:

    答案是肯定的!您可以将它与 Firebase 一起使用。

    我们将 RNCryptor 集成到一个项目中,并使用它来加密和解密存储在 Firebase 中的私人数据。

    在 ObjC 中加密

    NSString *plainText = @"Hello!"
    NSData *data = [plainText dataUsingEncoding:NSUTF8StringEncoding];
    NSError *error;
    NSData *encryptedData = [RNEncryptor encryptData:data
                                        withSettings:kRNCryptorAES256Settings
                                            password:aKey
                                               error:&error];
    
    NSString *stringFromEncryptedData = [encryptedData 
             base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
    

    这是 ObjC 中的解密模式

    NSData *dataFromEncryptedString = [[NSData alloc] 
              initWithBase64EncodedString:encryptedString 
                                  options:NSDataBase64DecodingIgnoreUnknownCharacters];
    NSError *error;
    NSData *decryptedData = [RNDecryptor decryptData:dataFromEncryptedString
                                        withPassword:aKey
                                               error:&error];
    
    NSString *plainText = [[NSString alloc] initWithData:decryptedData
                                                encoding:NSUTF8StringEncoding];
    

    请注意,aKey 是您要用于加密/解密纯文本字符串的秘密字符串模式。

    【讨论】:

    • 传奇!效果很好,它可以完美地作为随机混杂的字符保存到 Firebase 中
    【解决方案2】:

    这是我的 swift 加密函数

    func EncryptData(text: String) -> String {
        let Data: NSData = String(text).dataUsingEncoding(NSUTF8StringEncoding)!
        let Password = "Secret password"
        let EncryptedText = RNCryptor.encryptData(Data, password: "Secret password")
    
        return EncryptedText.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)
    }
    

    这是我的解密函数

    func DecryptData(text: String) -> String {
        let decodedData = NSData(base64EncodedString: text, options: .IgnoreUnknownCharacters)
        do {
            let originalData = try RNCryptor.decryptData(decodedData!, password: MasterKey)
            return  String(data: originalData, encoding: NSUTF8StringEncoding)!
        } catch {
            return "Data Error"
        }
    }
    

    【讨论】:

    • 甜蜜!干净整洁。
    猜你喜欢
    • 1970-01-01
    • 2016-09-25
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多