Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

Suche Algorithmus/Ideen zum String-Kodieren...

Mdl / 9 Antworten / Flachansicht Nickles

Suche Algorithmus/Ideen - vorzugsweise in C/C++ (aber nat. keine Vorraussetzung) - zum String-Kodieren...

mit einer wesentlichen Anforderung:

Wenn sich zwei Strings auch nur minimal unterscheiden, sollte die Ausgabe i.d.R. komplett unterschiedlich sein.

Obwohl ich eher eine Unkenntlichmachung, als eine wirksame Verschlüsselung benötige, habe ich, weil gerade greifbar, den DES-Algorithmus auf zwei ähnliche Strings - zwei Dateinamen mit unterschiedl. Extention - angewandt und festgestellt, dass der dafür nicht ideal ist. Grund: DES verschlüsselt in 8-Byte-Blöcken. Sind somit die ersten 8 Zeichen der Dateinamen identisch sind auch die ersten 8 Zeichen der Zielnamen identisch.

Also: Irgendwelche Ideen, Verweise, etc. ?

Vielen Dank,

Mdl

bei Antwort benachrichtigen
Borlander Mdl „Wieder was dazugelernt.... Nur, wenn ich jetzt schreiben ...“
Optionen
Für alle s1, s2 mit s1 ungleich s2 muss gelten:   Levenshtein-Distanz < ... findet sich bestimmt das ein oder andere s1, s2,   für das das nicht zutrifft. ;-)

Statt der recht komplex definierten Levenshtein-Distanz könnte man auch einfach den Hamming-Abstand als Abstandsmaß nutzen. Auf Basis Deiner obigen Definition und  dist() wäre es natürlich schon eine Funktion zu haben die nachfolgende Bedingung erfüllt:

dist(scramble(s1) ; scramble(s2)) >> dist(s1 ; s2)

Das wird sich aber so in der Tat nicht garantieren lassen wie Du schon festgestellt hast. Und spontan würde ich hier nicht mal für >= meine Hand ins Feuer legen. Wobei Einzelfälle auch nicht weiter tragisch wären.

Dann mach Dich mal ans werk. Würde mich natürlich interessieren, wie Deine Lösung am Ende ausschaut.

Gruß
Borlander

bei Antwort benachrichtigen