Gibt es eine Möglichkeit, einen Hash einer Zeichenfolge zu generieren, so dass der Hash selbst eine bestimmte Länge hätte? Ich habe eine Funktion, die 41-Byte-Hashes (SHA-1) generiert, aber ich brauche es maximal 33 Bytes (wegen bestimmter Hardware-Einschränkungen). Wenn ich den 41-Byte-Hash auf 33 trenne, würde ich (sicherlich!) Die Eindeutigkeit verlieren.Hash einer Zeichenfolge mit bestimmter Länge
Oder eigentlich nehme ich an, dass ein MD5-Algorithmus gut passen würde, wenn ich mit Ihrer Hilfe einen C-Code für einen finden könnte.
EDIT: Danke Ihnen allen für die schnelle und sachkundige Antworten. Ich habe mich für einen MD5-Hash entschieden und es passt für meinen Zweck. Die Eindeutigkeit ist ein wichtiges Problem, aber ich erwarte nicht, dass die Anzahl dieser Hashes zu jedem Zeitpunkt sehr groß ist - diese Hashes repräsentieren Software-Server in einem Heim-LAN, so dass maximal 5, vielleicht 10, laufen würden.
Vielen Dank - ich gebe es zu versuchen ... – dennisV
Ihr BTW ist die echte Antwort. Wenn Sie wenig Speicher haben, speichern Sie Ihre Hashes nicht als Hex-Strings! –
MD5 ist 'mehr gebrochen-er' als SHA1 und sha256. Sie sollten besser abgeschnitten und die zusätzlichen 12 Bytes der Entropie verwenden. – Aaron