Ich versuche MD5-Hash meiner Daten zu erhalten (Bild vom Interweb heruntergeladen). Leider habe ich das Framework auf swift 3 aktualisiert und die Methode, die ich verwendet habe, funktioniert jetzt nicht.
Ich habe das meiste davon konvertiert, aber ich kann keine Bytes aus den Daten herausholen:
%Vor% CommonCrypto wird bereits als benutzerdefiniertes Modul importiert. Problem ist, dass ich 'bytes' is unavailable: use withUnsafeBytes instead
auf CC_MD5(data.bytes,...
Also ist die Frage wirklich, wie bekomme ich die Bytes aus den Daten und wird diese Lösung funktionieren?
Wie bereits erwähnt, ist bytes
nicht verfügbar, weil es gefährlich ist. Es ist ein roher Zeiger in die Erinnerung, der verschwinden kann. Die empfohlene Lösung ist die Verwendung von withUnsafeBytes
, die verspricht, dass das Ziel während des Bereichs des Zeigers nicht verschwinden kann. Aus dem Speicher würde es etwa so aussehen:
Der Punkt ist, dass der bytes
-Zeiger nicht in Bereiche ausbrechen kann, in denen data
nicht mehr gültig ist.
Ein Beispiel dafür mit CCHmac
, das sehr ähnlich zu MD5
ist, finden Sie unter RNCryptor .