Buchstaben gleichzeitig ersetzen
Buchstaben gleichzeitig ersetzen
Hallo,
ich suche eine Funktion, um Buchstaben in PHP gleichzeitg zu ersetzen. Damit meine ich nicht preg_replac oder str_replace.
Als Beispiel:
Wenn ich den String "abc" habe und nun aus "a" ein "b" mach eund aus "b" ein "c", dann würde das so aussehen:
abc -> bbc -> ccc
Ich möchte aber "bcc" als ergebnis haben. Deshalb dürfen Buchstaben, die eine "Ersetzung" sind nicht ein weiteres mal ersetzt werden. Mit welcher Funktion kann ich das anstellen, bzw. gibt es andere Möglichkeiten dafür? Es geht nicht, dass ich ERST "b" durch "c" ersetze und DANN "a" durch "b", da letztendlich auch "c" durch "a" ersetzt wird. Also prinzipiel wie die Cäsar-Verschlüsslung...
Danke im Vorraus
- P7BB
Edit:
Ich benötige keine Cäsar-Verschlüsslung, wie sie beispielsweise hiermit erstellt werden könnte:
http://go.raidrush.ws/?http://de2.php.net/str_rot13
Ich brauche das ganze für eine andere Verschlüsslung, die ich momentan entwickel, aber die Problematik bleibt diesselbe.
ich suche eine Funktion, um Buchstaben in PHP gleichzeitg zu ersetzen. Damit meine ich nicht preg_replac oder str_replace.
Als Beispiel:
Wenn ich den String "abc" habe und nun aus "a" ein "b" mach eund aus "b" ein "c", dann würde das so aussehen:
abc -> bbc -> ccc
Ich möchte aber "bcc" als ergebnis haben. Deshalb dürfen Buchstaben, die eine "Ersetzung" sind nicht ein weiteres mal ersetzt werden. Mit welcher Funktion kann ich das anstellen, bzw. gibt es andere Möglichkeiten dafür? Es geht nicht, dass ich ERST "b" durch "c" ersetze und DANN "a" durch "b", da letztendlich auch "c" durch "a" ersetzt wird. Also prinzipiel wie die Cäsar-Verschlüsslung...
Danke im Vorraus
- P7BB
Edit:
Ich benötige keine Cäsar-Verschlüsslung, wie sie beispielsweise hiermit erstellt werden könnte:
http://go.raidrush.ws/?http://de2.php.net/str_rot13
Ich brauche das ganze für eine andere Verschlüsslung, die ich momentan entwickel, aber die Problematik bleibt diesselbe.
Re: Buchstaben gleichzeitig ersetzen
du müsstest alle strings cachen und dann geordnet verschlüsseln. dabei müsste bis zum abschluß der verschlüsselung das abbild des originalstrings "im raum" stehen bleiben, so das es sauber zeilenweise verschlüsselt werden kann. dann das ganz flushen. umgekehrt gehts dann mit der entschlüsselung. nicht ganz unmöglich, aber ne ziemlich hakelige sache.
Re: Buchstaben gleichzeitig ersetzen
Warum einfach, wenn es auch kompliziert geht? Ich würde den String einfach Zeichen für Zeichen durchlaufen und diese dann mit einem switch-Block "bearbeiten":
Siehe http://de.php.net/manual/de/language.ty ... ing.substr
Code: Alles auswählen
$string = 'Hallo Welt abc';
for($i=0; $i<strlen($string); $i++) {
switch($string[$i]) {
case 'a': $string[$i] = 'b'; break;
case 'b': $string[$i] = 'c'; break;
case 'c': $string[$i] = 'a'; break;
}
}
KB:knigge
Re: Buchstaben gleichzeitig ersetzen
Danke, auf die gleiche Lösung bin ich vorhin auch gekommen, aber hatte das mit dem switch nicht gewusst, weshalb ich ein etwas seltsammes (und nicht funktionierendes) script an der stelle benutzt habePyramide hat geschrieben:Warum einfach, wenn es auch kompliziert geht? Ich würde den String einfach Zeichen für Zeichen durchlaufen und diese dann mit einem switch-Block "bearbeiten":Siehe http://de.php.net/manual/de/language.ty ... ing.substrCode: Alles auswählen
$string = 'Hallo Welt abc'; for($i=0; $i<strlen($string); $i++) { switch($string[$i]) { case 'a': $string[$i] = 'b'; break; case 'b': $string[$i] = 'c'; break; case 'c': $string[$i] = 'a'; break; } }
Re: Buchstaben gleichzeitig ersetzen
genauso meinte ich das, top..Warum einfach, wenn es auch kompliziert geht
Re: Buchstaben gleichzeitig ersetzen
Oh, gut, dass pyramide nochmal seine Methode geschrieben hat, sonst wär ich ehrlich gesagt etwas verzweifelt gewesen, denn deine Methode hörte sich danach an, den kompletten orignalen string zu speichern, statt ihn einfach in ein array aufzuteilen...
Achja: Letztendlich kann man meinen Code nicht mehr entschlüsseln... weder manuell, noch automatisch, noch sonst irgendwie. Praktisch eine Art "neuer" md5-algorythmus und es werden nicht einfach buchstaben durch andere ersetzt, sondern die situation ist diesselbe gewesen und ich dachte mir, es ist einfacher das ganze so zu beschreiben, wie ich es getan hab
Achja: Letztendlich kann man meinen Code nicht mehr entschlüsseln... weder manuell, noch automatisch, noch sonst irgendwie. Praktisch eine Art "neuer" md5-algorythmus und es werden nicht einfach buchstaben durch andere ersetzt, sondern die situation ist diesselbe gewesen und ich dachte mir, es ist einfacher das ganze so zu beschreiben, wie ich es getan hab
Re: Buchstaben gleichzeitig ersetzen
war mir im augenblick selber schwer, das zu umschreiben, da nicht ganz alltäglich. die entschlüsselung wäre ohne genau string- und positions-speicherung in einer temporären tabelle wohl tatsächlich unmöglich. und die tabelle würde wiederum die verschlüsselng ad absurdum führen, außer beide genannten informationen würde in so etwas wie eine privat-key geschrieben werden, der sich dann downloadet und den temporären datenbankeintrag löscht. irgendwie sowas.
Re: Buchstaben gleichzeitig ersetzen
Naja, das Problem beim entschlüsseln ensteht erst in weiteren Schritten. Theoretisch wäre das möglich, das mit hohem aufwand möglich, zu entschlüsseln, aber ich denke, selbst bei hohem aufwand kommt nichts sinnvolles bei raus, was einem weiterhilft und 2. werde ich diesen algorythmus nicht weitergeben, da er ja meine eigene Homepage sichern soll, die kommerziell ist und somit wäre eine entschlüsslung des admin-passworts extrem schlimm
Das Beispiel, so wie es aber bis jetzt hier bekannt ist, wäre ohne Probleme entschlüsselbar. Sogar im Kopf, ohne php
denn:
abcdefghijklmnopqrstuvwxyz hallo
bcdefghijklmnopqrstuvwxyza ibmmp
So kann man einfach ablesen, was dort steht
Das Beispiel, so wie es aber bis jetzt hier bekannt ist, wäre ohne Probleme entschlüsselbar. Sogar im Kopf, ohne php
denn:
abcdefghijklmnopqrstuvwxyz hallo
bcdefghijklmnopqrstuvwxyza ibmmp
So kann man einfach ablesen, was dort steht
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Re: Buchstaben gleichzeitig ersetzen
Falls du dieses Verfahren für Verschlüsselung einsetzen willst würde ich da an deiner Stelle aber noch mal drüber nachdenken. Die einfache Buchstabenersetzung ist eines der am leichtesten zu knackenden Verschlüsselungsverfahren. Das Verfahren tut ja überhaupt nichts gegen Häufigkeitsanalysen oder ähnliches, wenn bisher beispielsweise das e der häufigste Buchstabe war, dann wird das mit seiner Ersetzung hinterher ebenso sein. Dann muss letztlich nur noch die Menge an verschlüsselten Daten groß genug sein um dein Verfahren angreifbar zu machen (wenn du natürlich lediglich ein einziges Passwort verschlüsselst das noch dazu aus einer ganzen Menge zufälligen Zeichen besteht die alle durch andere ersetzt werden dann dürfte das noch einigermaßen sicher sein da dann Häufigkeitsanalysen und ähnliche Angriffe nicht funktionieren dürften, sobald du aber noch weitere Dinge damit verschlüsseln willst würde ich an deiner Stelle lieber was anderes machen).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Re: Buchstaben gleichzeitig ersetzen
Nein, das hab ich nicht vor. Sagte ich aber auch schon, glaub ich...gn#36 hat geschrieben:Falls du dieses Verfahren für Verschlüsselung einsetzen willst würde ich da an deiner Stelle aber noch mal drüber nachdenken. Die einfache Buchstabenersetzung ist eines der am leichtesten zu knackenden Verschlüsselungsverfahren. Das Verfahren tut ja überhaupt nichts gegen Häufigkeitsanalysen oder ähnliches, wenn bisher beispielsweise das e der häufigste Buchstabe war, dann wird das mit seiner Ersetzung hinterher ebenso sein. Dann muss letztlich nur noch die Menge an verschlüsselten Daten groß genug sein um dein Verfahren angreifbar zu machen (wenn du natürlich lediglich ein einziges Passwort verschlüsselst das noch dazu aus einer ganzen Menge zufälligen Zeichen besteht die alle durch andere ersetzt werden dann dürfte das noch einigermaßen sicher sein da dann Häufigkeitsanalysen und ähnliche Angriffe nicht funktionieren dürften, sobald du aber noch weitere Dinge damit verschlüsseln willst würde ich an deiner Stelle lieber was anderes machen).
Nur für diese Verschlüsselungen muss ich Buchstaben allgemein durch etwas anderes ersetzten, aber ich möchte das Verfahren nicht weiter erleutern, ok?
- P7BB