加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 将十六进制编码的String转换为String

发布时间:2020-12-14 04:48:30 所属栏目:百科 来源:网络整理
导读:我想在 Swift 3中转换以下十六进制编码的字符串: dcb04a9e103a5cd8b53763051cef09bc66abe029fdebae5e1d417e2ffc2a07a4 到它的等效字符串: ü°J:?μ7c? ?f?à)y??^A~/ü*¤ 以下网站的工作非常好: http://codebeautify.org/hex-string-converter http://
我想在 Swift 3中转换以下十六进制编码的字符串:

dcb04a9e103a5cd8b53763051cef09bc66abe029fdebae5e1d417e2ffc2a07a4

到它的等效字符串:

ü°J:?μ7c?  ?f?à)y??^A~/ü*¤

以下网站的工作非常好:

http://codebeautify.org/hex-string-converter

http://string-functions.com/hex-string.aspx

但我无法在Swift 3中做同样的事情.以下代码也不能完成这项工作:

func convertHexStringToNormalString(hexString:String)->String!{
  if let data = hexString.data(using: .utf8){
      return String.init(data:data,encoding: .utf8)
  }else{ return nil}
}

解决方法

您希望将十六进制编码数据用作AES密钥,但是
数据不是有效的UTF-8序列.你可以解释
它作为ISO拉丁语编码中的字符串,但AES(键:字符串,…)
初始化程序将字符串转换回其UTF-8表示形式,
即,您将获得与您开始时不同的关键数据.

因此,您根本不应将其转换为字符串.使用

extension Data {
    init?(fromHexEncodedString string: String)
}

从hex/binary string conversion in Swift开始的方法
将十六进制编码的字符串转换为Data然后传递它
作为AES的数组(键:数组< UInt8>,…)初始值设定项:

let hexkey = "dcb04a9e103a5cd8b53763051cef09bc66abe029fdebae5e1d417e2ffc2a07a4"
let key = Array(Data(fromHexEncodedString: hexkey)!)

let encrypted = try AES(key: key,....)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读