2016-08-24 5 views
-4

Ich schaffe einen SHA512 Hash mit folgenden Code:Swift decrypt SHA512 Hash

func createSHA512(source:String) -> String { 
    let rawstr:NSString = NSString(format: "%@%@", source, "xxxxxxxxxxxxxx"); 
    let data = rawstr.dataUsingEncoding(NSUTF8StringEncoding)!; 
    var digest = [UInt8](count:Int(CC_SHA512_DIGEST_LENGTH), repeatedValue: 0); 
    CC_SHA512(data.bytes, CC_LONG(data.length), &digest); 
    let output = NSMutableString(capacity: Int(CC_SHA512_DIGEST_LENGTH)); 
    for byte in digest { 
     output.appendFormat("%02x", byte); 
    } 
    return output as String; 
} 

Ist es möglich, diesen Hash mit Swift 2 zum Original-String zu entschlüsseln?

+2

Der eigentliche Zweck eines Hash ist, dass es nicht rückgängig gemacht werden kann (unverschämt, entschlüsselt). Es ist keine Verschlüsselungsmethode. – Codo

+0

Dies ist nur durch rohe Gewalt möglich oder wenn Sie einen Regenbogen-Tisch haben, der Hashes und ihre bekannten "Originale" enthält. Sie können einen Hash nicht entschlüsseln. – donnywals

+2

Eine Suche nach 'decrypt sha hash' hat (aktuell) 351 Treffer. Ich kann mir nicht vorstellen, dass keiner von ihnen Ihre Frage beantwortet hat. –

Antwort

2

SHA ist ein Hash, keine Verschlüsselung. Ein Hash enthält nicht alle Informationen im Original und es ist eine Einwegfunktion. Es ist eine Signatur der Originaldaten, keine Version davon.

Also nein, es kann nicht rückgängig gemacht werden, um das Original zu erhalten.

Die einzige Option zum "Reverse" wäre es, Vermutungen des Originals zu erstellen und zu versuchen, sie zu hashen und zu sehen, ob das Ergebnis übereinstimmt. Beachten Sie, dass Hashes nicht eindeutig sind. Selbst wenn Sie eine Übereinstimmung gefunden haben, können Sie nicht 100% garantieren, dass sie dem Original entspricht, sondern nur, dass sie auf denselben Wert hasht.

Verwandte Themen