【问题标题】:Decode base64 + decrypt - Swift解码 base64 + 解密 - Swift
【发布时间】:2023-03-28 22:56:01
【问题描述】:
let originalMsg:String = "THIS IS A TEST"
let sessionData = originalMsg.dataUsingEncoding(NSUTF8StringEncoding)        
var encryptedPublic:NSData = RNCryptor.encryptData(sessionData!, password: ProjectConstants.MessageEncrypt.PUBLIC_KEY)
var base64EncodedPublic:NSData = encryptedPublic.base64EncodedDataWithOptions([])
var encryptedPrivate = RNCryptor.encryptData(base64EncodedPublic, password: privateKey)
var base64EncodedString:String = encryptedPrivate.base64EncodedStringWithOptions([])

您将如何解码 + 解密 base64EncodedString 以获得原始输入?我想我正在为 base64 解码而苦苦挣扎。

【问题讨论】:

    标签: ios swift encryption swift2


    【解决方案1】:

    这是您在 Swift 2 中从 base64 字符串获取 UTF-8 编码的NSString 的方式:

    let decodedData = NSData(base64EncodedString: base64EncodedString,
                             options: NSDataBase64DecodingOptions.fromRaw(0)!)
    let decodedString = NSString(data: decodedData, encoding: NSUTF8StringEncoding)
    

    但如果你想解密,你只需要数据:

    do {
        let decodedData = NSData(base64EncodedString: base64EncodedString,
                             options: NSDataBase64DecodingOptions.fromRaw(0)!)
        let decryptedPrivate = RNDecryptor.decryptData(decodedData, password: privateKey)
        let decodedPrivate = NSData(base64EncodedData: decryptedPrivate,
                                options: NSDataBase64DecodingOptions.fromRaw(0)!)
        let decryptedPublic = RNDecryptor.decryptData(decodedPrivate, password: ProjectConstants.MessageEncrypt.PUBLIC_KEY)
        let decryptedMessage = NSString(data: decryptedPublic, encoding: NSUTF8StringEncoding) as String
    } catch {
      // handle decryption errors...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 2018-03-13
      • 2016-07-21
      • 1970-01-01
      • 2015-09-29
      相关资源
      最近更新 更多