Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Von md5() 25 Strings abziehen“

Mew

Aktives Mitglied

Hallo^^

Mit md5() erzeugt man ja eine 32 lange Zeichenkette.
Ich brauche aber nur eine zufällige 7 Zeichen lange Kette.
Kann man von md5() die Strings abziehen oder gibt es da einen andere Befehl??

Vielen Dank
 

eFoX

Reiche Zahnarztgattin

AW: Von md5() 25 Strings abziehen

md5hash in variable schreiben, hier $md5hash

dann probier mal:
$mymd5hashnew= substr($md5hash, 0 , strlen($md5hash)-25);

(ich vermute mal anstatt noch die stringlänge minus 25 zu nehmen könnte auch nur gehen
PHP:
substr($md5hash, 0 , 6);
 

Mew

Aktives Mitglied

AW: Von md5() 25 Strings abziehen

hmm irgendwie verstehe ich das nicht ganz, könntest du mir das ein bissel erläutern? Vielen Dank
 

Christian

verpeilt & verschallert

AW: Von md5() 25 Strings abziehen

Das Script von eFox im Gesamtkontext:
PHP:
$md5Val = md5('irgendwas');
//Der 7stellige String
$new = substr($md5Val, 0, 7);
echo $new;
 

eFoX

Reiche Zahnarztgattin

AW: Von md5() 25 Strings abziehen

0 bis 7 hast du aber 8 zeichen? daher dachte ich muss man 0 bis 6 gehen, weil nen string das erste zeichen bei 0 beginnt, oder ich irre.
 

Christian

verpeilt & verschallert

AW: Von md5() 25 Strings abziehen

nein nein, das hier darfst Du nicht mit Array-Indizes verwechseln.
wenn Du den ersten Buchstaben aus einer Zeichenkette haben willst schreibst Du ja auch substr($string, 0, 1);
 

blackout

Schaf im Wolfspelz

AW: Von md5() 25 Strings abziehen

MD5 hat nichts mit Zufall zu tun, dafür gibt's Zufallsgeneratoren. MD5 ist ein kryptographischer Hash-Wert zur Sicherung von Verschlüsselungen und Zertifizierung von Transaktionen.
Falls du einfach nur einen Zufallsstring suchst wird dir Google sicher prima helfen, für den Fall dass du weitere Wünsche hast, wie z.B. die Wahrscheinlichkeit bestimmter Zeichen zu beeinflussen, kann ich dir dafür auch ne Klasse schicken.

Edit:
substr($foo, $Anfangszeichenindex, $GewünschteLänge): so läuft's. Der dritte Parameter gibt nicht an, bei welchem Wert der Substring "abgeschnitten" wird, sondern wie lange der Ausgabestring (maximal) sein darf - und die Länge eines Wortes ändert sich nicht mit der Indizierung, selbst wenn man bei -pi anfängt.
 
Zuletzt bearbeitet:

Mew

Aktives Mitglied

AW: Von md5() 25 Strings abziehen

hmm da ihr so viel zur Auswahl habt, sage ich euch mal für was ich das brauche:

ich lade eine Datei hoch mit dem normalen dateinamen. Damit es keine doppelten namen gibt, wird am Ende _1234 ein _ und eine 4 stellige zufalls Zahl angehängt. Nun meine Frage wie bekomme ich die Zufallszahl hin???
 

Christian

verpeilt & verschallert

AW: Von md5() 25 Strings abziehen

Mein Ansatz wäre:

PHP:
$file_exists = false;
while(!$file_exists){
  $suffix = substr(uniqid(md5(microtime())), 0, 4);
  #$oldFileName muss natürlich mit der originalen Dateinamen-Variable ausgetauscht werden!
  $new_FileName = $oldFileName.'_'.$suffix;
  if(!file_exists($new_FileName)){
    //Start Anweisung zum Speichern!
    
    //Ende Anweisung zum Speichern
    //Die Zeile hier drunter nicht löschen
    $file_exists = true;
  }
}

Edit: Bedingung geändert.
 
Zuletzt bearbeitet:

CIX88

Aktives Mitglied

AW: Von md5() 25 Strings abziehen

andere Variante wäre ohne MD5:
PHP:
$temp = array_merge( range(1,9), range('a','z') );
srand ( (float)microtime() * 1000000);
shuffle ( $temp );
$out = '';
$cc = 0;
foreach ( $temp as $v ) {
 if ($cc++ >= 7) { break; }
 $out .= $v;
}
echo $out;
 

saila

Moderatorle

AW: Von md5() 25 Strings abziehen

Also wenn man diesen Thread durch hat, ist man entweder völlig balla oder man nimmt die zwei einzigen Antworten (blackout und CIX88), welche was taugen und verwendet diese entsprechend. Der Rest ist Müll - und sorry, wenn sich nun der ein oder andere auf den Schlipps getreten fühlt, aber denkt mal selbst über das nach, was als Antworten hier so steht.
 

Christian

verpeilt & verschallert

AW: Von md5() 25 Strings abziehen

Es ist nicht meine Aufgabe das Grundproblem des Lösungsansatzes des Threaderöffners zu korrigieren, es kann ja diverse Gründe haben, warum er gerade md5 als "Zufallsgenerator" benutzen möchte, zB Verständnis.
Mein Lösungsansatz wäre es auch nicht gewesen, aber jedem wie er will, daher ist es ganz sicherlich nicht Müll, was hier zusammengetragen wurde, nur weil dir der Lösungsweg nicht als sinnvoll erscheint. Das Ergebnis hat den selben Effekt, wie eine -aus dem Aspekt der Zufallszahl gesehenen- Lösung. Mehr ist nicht wichtig.
Viele Wege führen nach Rom. Und manche halt über md5 :rolleyes:
 
Zuletzt bearbeitet:

CIX88

Aktives Mitglied

AW: Von md5() 25 Strings abziehen

Naja alles schön gut, aber MD5 alleine macht keine Zufallsstrings.
Also MUSS man andere Wege gehen, womit sich dadurch der Umweg über MD5 wieder aufhebt.
Du kannst ja gerne die Zufallsrate testen:
PHP:
echo substr(MD5(MD5(MD5(MD5(MD5(time()))))),0,7);
:)
 

CIX88

Aktives Mitglied

AW: Von md5() 25 Strings abziehen

Ich habs noch nicht mit 1000x MD5 probiert ... sollte aber dann gehen :)
Keine Ahnung ob dann PHP versagt :)
 

Christian

verpeilt & verschallert

AW: Von md5() 25 Strings abziehen

Sarkastische Kommentare sind hier fehl am Platz, denn wenn irgendwer das Beispiel mit uniqid(md5(microtime))) getestet hätte, hätte die Person gesehen, dass dort immer etwas "zufälliges" (In diesem Fall halt nicht immer gleich) bei rumkommt. Und sicherlich muss man nicht den Umweg über MD5 gehen, aber es war vom Threaderöffner so gewünscht, also habe ich das in dem Beispiel einfach mit eingebaut, habe ich aber auch schon vorher beschrieben.
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: Von md5() 25 Strings abziehen

Also Christian, ich versuche es mal ganz vernünftig.

Wenn z.B. ein Autofahrer in eine Werkstatt kommt und sagt, dass seine Bremse im Auto nichts taugt - dieser Autobesitzer/fahrer aber keine Bremse mehr möchte, weil er diese im Detail nicht kennt, dann geht die Werkstatt bestimmt nicht hin und gibt ihm für die nächste Fahrt einen Anker mit einer entsprechenden Schnur daran!

Ich hoffe du hast das Beispiel verstanden. md5() hat eine Funktionsberechtigung in PHP in Form einer Verschlüsselng. Genauso gibt es Funktionen zur erzeugung von Zufallswerten und davon mind. 4 Funktionen in PHP. Und nur weil jemand etwas wünscht, besagt das noch lange nicht, dass dies korrekt sein muss oder das Fehlwissen unterstützt werden muss.

Edit:
Was besagt dieses aka in deiner Signatur?
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
174.485
Beiträge
2.578.044
Mitglieder
65.983
Neuestes Mitglied
shane1310
Oben