【问题标题】:How to convert Data with 32 bytes to string with 32 char length in iOS Swift 3.1?如何在 iOS Swift 3.1 中将 32 个字节的数据转换为 32 个字符长度的字符串?
【发布时间】:2017-10-07 11:23:54
【问题描述】:

我有 44 个字符长度的字符串,我想在 iOS Swift 3.1 中将其转换为 32 个字符长度

let keyString = "u6KuXJLIUwEUl7noY8J8H1ffDRwLC/5gjaWW1qTQ3hE="

我使用此代码将其转换为 32 字节的数据:

let keyData = Data(base64Encoded: keyString)

现在,如何将其转换为长度为 32 个字符的字符串?

【问题讨论】:

  • 如果字节是(例如)<00010203 00000000 ... FFFEFDFC>,该字符串应该是什么?将二进制 blob 解释为字符串(通常)是没有意义的。为什么你认为需要 32 个字符的字符串?
  • 用于通过 swift 代码在 laravel 加密中使用 @MartinR
  • 再次:<00010203 00000000 ... FFFEFDFC> 应该如何表示为 32 个字符的字符串?或者在你的具体情况下<bba2ae5c 92c85301 1497b9e8 63c27c1f 57df0d1c 0b0bfe60 8da596d6 a4d0de11>
  • 在 php 中看到这个 $key = "u6KuXJLIUwEUl7noY8J8H1ffDRwLC/5gjaWW1qTQ3hE="; $key = (string)base64_decode($key); @MartinR
  • @Larme:这将给出 32 个字节的 64 个字符 :)

标签: ios swift base64 decode encode


【解决方案1】:
String(data: keyData, encoding: .utf8)

给你一个可选的字符串。由于您知道源数据实际上包含 UTF-8/ASCII 数据,因此您可以安全地打开它。

【讨论】:

  • Base64 解码问题中的字符串 "u6KuXJLIUwEUl7noY8J8H1ffDRwLC/5gjaWW1qTQ3hE=" 给出了<bba2ae5c 92c85301 1497b9e8 63c27c1f 57df0d1c 0b0bfe60 8da596d6 a4d0de11>,这是not有效的 UTF-8。
猜你喜欢
  • 2017-10-02
  • 1970-01-01
  • 2018-11-14
  • 2015-10-03
  • 1970-01-01
  • 2016-03-12
  • 2019-03-14
  • 2013-07-11
  • 1970-01-01
相关资源
最近更新 更多