2017-05-09 1 views
1

Je Chaîne 44 longueur char et je veux le convertir en 32 longueur char dans iOS Swift 3,1Comment convertir des données avec 32 octets en chaîne de 32 caractères dans iOS Swift 3.1?

let keyString = "u6KuXJLIUwEUl7noY8J8H1ffDRwLC/5gjaWW1qTQ3hE=" 

-je utiliser ce code pour le convertir en données avec 32 octets:

let keyData = Data(base64Encoded: keyString) 

et maintenant, comment le convertir en chaîne avec 32 longueur de char?

+1

Quelle devrait être cette chaîne si les octets sont (par exemple) '<00010203 00000000 ... FFFEFDFC>'? Interpréter un blob binaire comme une chaîne (habituellement) n'a aucun sens. Pourquoi pensez-vous qu'une chaîne de 32 caractères est nécessaire? –

+0

Pour utiliser dans le cryptage laravel via le code rapide @MartinR –

+1

Encore une fois: Comment '<00010203 00000000 ... FFFEFDFC>' devrait-il être représenté comme une chaîne de 32 caractères? Ou dans votre cas concret ''? –

Répondre

1
String(data: keyData, encoding: .utf8) 

vous donne une chaîne optionnelle. Puisque vous savez que les données sources contiennent effectivement des données UTF-8/ASCII, vous pouvez les déplier en toute sécurité.

+0

base64 décode la chaîne ' "u6KuXJLIUwEUl7noY8J8H1ffDRwLC/5gjaWW1qTQ3hE ="' de la question donne '' qui est * pas * valide UTF -8. –