String kürzen, nich abschneiden

Dax_ka

Mitglied
Hey,

Kennt jemand eine Möglichkeit einen zB. 9 Zeichen langen String zu kürzen. Also die Anzahl der Chars zu verringern, ohne das der Inhalt verloren geht.
Was ich also machen schreiben möchte sind zwei Methoden. Eine der man den original String übergibt und die diesen dann verkürzt ausgibt. Und eine zweite Methode der der gekürzte String übergeben wird und dann das original String wieder ausgiebt.
Ideen? Schlüsselwörter nach denen ich mal googlen sollte?
 
Zuletzt bearbeitet:
wenn man Millionen Strings hat, aber nur 20 verschiedene, dann kann man die cachen und stattdessen einfache Nummern 1, 2, 3, 4 usw zurückgeben, notfalls als String mit 1-2 Zeichen,
bzw. einfach nur ein gemeinsames einzelnes String-Objekt mit dem Original-Inhalt, falls es vorher jeweils verschiedene mit gleichen Inhalt waren
 
Wenn dein String nur bestimmte Zeichen verwendet (z.B. kein Unicode über 0xFF), kann man das natürlich zur Kompression ausnutzen. Dann würde ich das Ergebnis allerdings ein byte-Array oder so packen, wieder ein String könnte Ärger mit der Unicode-Codierung geben.
 
Also um genau zu sein will ich Nachnamen kürzen, also kommen nur Klein- und Grossbuchstaben vor und vielleicht nen Bindestrich für unentschlossene. Damit fällt cachen schon mal raus. Hatte schon an sowas wie Vokale cachen gedacht, aber dafür bräucht ich ne entsprechende Tabelle mit Vokalen die auch z.B. chinesische Vokale beinhaltet. Die Möglichkeit halte allerdings für nen bisschen übertrieben aufwendig.

Heute 14:30 Landei
Wenn dein String nur bestimmte Zeichen verwendet (z.B. kein Unicode über 0xFF), kann man das natürlich zur Kompression ausnutzen. Dann würde ich das Ergebnis allerdings ein byte-Array oder so packen, wieder ein String könnte Ärger mit der Unicode-Codierung geben.

Kannst du mir das nen bisschen genauer Erklären?
 
Heute 14:57 bygones
arbeitest du mit solchen MB/GB an Nachnamen dass es eine komprimierung bedarf ?

Ich will in einer möglichst kurzen zeichen Kette, möglichst viele Informationen verstecken.
Das wären Geburtsdatum, Geschlecht, Vorname, Kurs-Nr., Teilnahmedatum besagten Kurses und den vollen Nachnamen.

Sinn des ganzen ist, dass die koprimierte Zeichenkette dann auf einem Zertifikat stehen soll, dass die Teilnahme bestätigt. Die echtheit des Zertifikats soll dann online geprüft werden können und eben all die Daten zurückgeben.

Mit ner Datenbank würd einfacher gehen, aber ich solls so machen....
 
da keine DB vorhanden ist (sein soll), kann man dann nicht zurückrechnen bzw. nach vorhandenen Hashes oder sonstiger 'Rechnungsnummer' suchen, schon interessant,
ist es kein Problem dass dann theoretisch jeder sich selber einen passenden verkürzten String aussuchen könnte?
nicht grad sicher wenn man es ganz genau nimmt, in der Praxis als Argument wohl egal

security by obscurity, wie es so schön heißt
 
Zuletzt bearbeitet von einem Moderator:
Zum Thema Sicherheit, wollt ich in der Zeichenkette noch ne 2 stellige Primzahl, als öffentlichen Schlüssel, verstecken. Und die ganze Kette dann nochmal mit RSA verschlüsseln. Mit nem grossen geheimen Schlüssel.

So sicher muss eh nich sein, weil ich bezweifle, dass sich jemand die Mühe macht das Zertifikat zu fälschen...

bygones
nimm doch den hashCode oder m5sum oder was auch immer....

Ja so könnt ichs verschlüsseln, aber ich kann das doch nich wieder entschlüssel. So hab ich es jedenfalls verstanden. Oder lieg ich da falsch?
 
Zuletzt bearbeitet:

Zurück
Oben