MD5 von Daten in Swift 3

8

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,...

bekomme

Also ist die Frage wirklich, wie bekomme ich die Bytes aus den Daten und wird diese Lösung funktionieren?

    
Ondrej 08.09.2016, 21:29
quelle

1 Antwort

13
%Vor%

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:

%Vor%

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 .

    
Rob Napier 08.09.2016, 21:40
quelle

Tags und Links