Ich arbeite an einem Projekt, das eine Zeichenfolge verschlüsselt, die der einfache Teil ist. Der schwierige Teil besteht darin, eine Methode zu finden, mit der die Zeichenfolge vor der Verschlüsselung durchsucht werden kann und die einen Wert mit einer Kollisionsdomäne zurückgibt. Dieser Hash wird zusammen mit der verschlüsselten Zeichenfolge in einer Datenbanktabelle gespeichert.C# Hash mit Collision Domain
Der Grund dafür ist, eine Teilmenge zum Entschlüsseln zu erstellen, wenn nach einem einzelnen Datensatz gesucht werden muss. Wie kann dies mit C# erreicht werden?
Welchen Teil benötigen Sie bei der Erstellung der Kollisionsdomäne oder der Erstellung des Hashs? –
Wie viele Kollisionen sprechen wir hier? Wenn der einzige Zweck darin besteht, zu überprüfen, ob Sie nur eindeutige Hashes überprüfen, würden Sie viele Kollisionen benötigen, um diesen Check wert zu machen. Wie Scott Chamberlain in seiner Antwort sagte, schwächt das Hash die Verschlüsselung, weil es Informationen an die bösen Jungs verliert. –
Wenn Sie nur auf Kollisionen prüfen müssen, würde ich NUR empfehlen, den Hash zu speichern. Wenn Sie den Wert wieder herausholen müssen, speichern Sie eine Nachschlagetabelle mit Hash -> verschlüsselten Daten, um zu vermeiden, dass mehrere Blobs verschlüsselter Daten aus demselben Klartext gespeichert werden. –