【问题标题】:I received a response from the sever I wanted to decode it before I use it further我收到了服务器的回复,我想在进一步使用之前对其进行解码
【发布时间】:2019-08-07 04:58:55
【问题描述】:

我从服务器收到一个字符串,我试图用填充解码字符串,但结果是 nil。我尝试了堆栈溢出中可用但没有用的代码。非常感谢您的帮助。

我尝试使用带有忽略未知字符选项和填充的 base64 编码,但它仍然抛出 nil。

let pem = "MIICyjCCAjOgAwIBAgIDBJPhMA0GCSqGSIb3DQEBBQUAMHsxEjAQBgNVBAMTCVJvb3RjZXJ0MTESMBAGA1UECRMJYmVsbGFuZHVyMQswCQYDVQQIEwJrYTEPMA0GA1UEERMGODg4ODg4MQwwCgYDVQQLEwNlc3MxGDAWBgNVBAoTD2VtdWRocmEgbGltaXRlZDELMAkGA1UEBhMCaW4wHhcNMTkwNzExMTAzNzM4WhcNMjgxMjI2MTAzNzM4WjB0MREwDwYDVQQDEwhBdmFkaGVzaDEMMAoGA1UECRMDYnRtMQswCQYDVQQIEwJrYTEPMA0GA1UEERMGODc4Nzg3MQwwCgYDVQQLEwNlc3MxGDAWBgNVBAoTD2VtdWRocmEgbGltaXRlZDELMAkGA1UEBhMCaW4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMDAm7W3nc3hyyAhG8RBCSmlSDzcU/C39dPEFPq3N0JpSghMojnZg0jnfwXCvWqtPhlTYEdVLSXRehmQpS2v/FN8wkqZoVaKHNQE1UJnzPbyjfTlQA20nlCNVTNBQ70rWYzfuuFhliUBycGbYaIE/VGk354AEdXipLklCPf7PsgZAgMBAAGjYzBhMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUkdq9ZIGVtD0x6k6hO7PdFMidh/QwHQYDVR0OBBYEFDwUkx0+5e1xTcavaVBpvREel/hZMAsGA1UdDwQEAwIBzjANBgkqhkiG9w0BAQUFAAOBgQBIDy2MjWWsZC9G1k3DFYyP2/jsj/xzKyQh2e5YrnxIGtK5jBRKZe3JOuq1wxMzRfzd22lnSyKzf4dKMp2ADXJnNQrB/aafGs9nf+FXuIomquZHoNGrThfSyB/tre8T3dMWRiUdYy74XL2wvQb6tVHPQ/UEPSYOyf3XDSnzpgtjmw=="
let decodedData = NSData(base64Encoded: dataStr, options: .ignoreUnknownCharacters)

  let length = dataStr.count
        dataStr = dataStr.padding(toLength: length + (4 - length % 4) % 4, withPad: "=", startingAt: 0)` 

它必须提供一些我可以用来创建证书的解码数据,因为响应的格式为.cert

【问题讨论】:

    标签: ios swift decode encode


    【解决方案1】:

    证书不是字符串。您不能从原始 Data 创建字符串。

    你可以简单地解码base64编码的字符串

    let decodedData = Data(base64Encoded: dataStr)
    

    注意事项:

    • 不要在 Swift 中使用 NSData
    • 不需要ignoreUnknownCharacters
    • 填充错误。只有在en编码数据和StringData的base64相关API自动添加=字符时才需要。

    【讨论】:

      【解决方案2】:

      可能会有所帮助 对于图像我这样做 我正在将 UIImage 转换为数据并将该数据转换为 base64EncodedString

      let imageData = UIimage.pngData()
      //encode string
      let imgBase64Str = imageData?.base64EncodedString(options: .lineLength64Characters) ?? ""
      //decoding string to data
      let decodedData = Data(base64Encoded: imgBase64Str, options: .ignoreUnknownCharacters)
      

      【讨论】:

        猜你喜欢
        • 2020-04-03
        • 2017-12-01
        • 1970-01-01
        • 2016-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-02
        相关资源
        最近更新 更多