SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Entwicklung und Softwaredesign
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 25.02.2007, 15:07:13
BruceCompanys BruceCompanys ist offline
Junior Member
 
Registriert seit: Oct 2006
Beiträge: 160
Passwort-Funktion

Hi,

ich will mal eure Meinung über meine Passwort hören, sie hat 4 Sicherheitsstufen und soll max 32 machen.

PHP-Code:
<?php
###########################
#Author: Simon Brass
#
#Title: Password-Maker 0.1
#
#OpenSource!
#Mach was du willst damit!
###########################



$length 8//maximale Länge 32!
$save 3//Es gibt 4 Sicherheitsstufen

function make_password($length$save=3){
    if(
$length 32){
        
$length 32;
    }    
    
srand((double)microtime() * 500000000);
    
$letters = array('a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w''x''y''z'); 
    
$other_signs = array("%""$""§""&""?""-""_");
    
$signs = array();
    
    switch(
$save){
        case 
0#Erste Stufe
            
for($i=0$i $length$i++){
                
$key rand(025);
                
$signs[] = $letters[$key];
            }
        break;    
        case 
1#Zweite Stufe
            
for($i=0$i $length$i++){
                
$upper rand(02);
                
$upper = (bool)$upper;
                
$key rand(025);
                if(!
$upper){
                    
$signs[]= strtoupper($letters[$key]); 
                } else {
                    
$signs[] = $letters[$key];
                }
            }
        break;
        case 
2#Dritte Stufe
            
for($i=0$i $length$i++){
                
$kind rand(03); //Zahlen werden immer im Verhältnis 1 zu 3 benutzt!
                
$kind = (bool)$kind;
                if(!
$kind){
                    
$signs[] = rand(09);
                } else {
                    
$upper rand(02);
                    
$upper = (bool)$upper;
                    
$key rand(025);
                    if(!
$upper){
                        
$signs[]= strtoupper($letters[$key]); 
                    } else {
                        
$signs[] = $letters[$key];
                    }
                }    
            }    
        break;
        case 
3//Vierte Stufe
            
for($i=0$i $length$i++){
                
$kind rand(02); //Zahlen und Sonderzeichen werden immer im Verhältnis 1 zu 2 benutzt!
                
$kind = (bool)$kind;
                if(!
$kind){
                    
$other rand(03);
                    
$other = (bool)$other;
                    if(!
$other){
                        
$key rand(06);
                        
$signs[] = $other_signs[$key];
                    } else {    
                        
$signs[] = rand(09);
                    }    
                } else {
                    
$upper rand(02);
                    
$upper = (bool)$upper;
                    
$key rand(025);
                    if(!
$upper){
                        
$signs[]= strtoupper($letters[$key]); 
                    } else {
                        
$signs[] = $letters[$key];
                    }
                }
            }    
        break;    
    }
    return 
implode(''$signs); 
}

echo 
make_password($length$save);
Ich hoffe euch gefällst!

mfg
Mit Zitat antworten
  #2  
Alt 25.02.2007, 15:39:41
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: Passwort-Funktion

Wer braucht ein 32 Zeichen langes Passwort?

Schon bei 8 Zeichen (a-z, A-Z, 0-9) macht eine Versuch das Passwort zu knacken keinen Sinn mehr.

Bei einem 8 Zeichen langen Passwort bestehend aus a-z, A-Z und 0-9 gibt es 218.340.105.584.896 mögliche Kombinationen.

Wer denkt da noch an einen Angriff auf's Passwort?
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #3  
Alt 25.02.2007, 15:48:27
BruceCompanys BruceCompanys ist offline
Junior Member
 
Registriert seit: Oct 2006
Beiträge: 160
AW: Passwort-Funktion

Kranke Menschen wie ich...

mfg
Mit Zitat antworten
  #4  
Alt 25.02.2007, 16:53:54
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Passwort-Funktion

ich zeig dir mal meine funktion:

PHP-Code:
<?php

function makePassword$length ) {
    return 
substrmd5microtime() . uniqid() ) , $length );
}

echo 
makePassword);

?>
die ist wenigstens genau so sicher, deutlich schneller und nicht so aufgebläht...

Geändert von feuervogel (25.02.2007 um 17:46:06 Uhr)
Mit Zitat antworten
  #5  
Alt 25.02.2007, 17:04:28
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Passwort-Funktion

was mich vor allem wundert, ist, dass es verschiedene sicherheitsstufen gibt. wieso sollte man bei gleich bleibender länge eine "unsichere" stufe wählen? dem besucher wird das passwort zugesandt, er änderts und denkt nie wieder dran. entweder es hat in der zwischenzeit jemand mitgesnifft und war schneller, oder eben nicht. 8 zufällig gewählte zeichen sind (siehe |Coding) in absehbarer zeit nicht zu knacken...man muss eben nur dafür sorgen, dass die zeichen halbwegs zufällig gewählt sind (siehe meine funktion)...

Geändert von feuervogel (25.02.2007 um 17:05:37 Uhr)
Mit Zitat antworten
  #6  
Alt 25.02.2007, 17:40:02
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: Passwort-Funktion

Hättest Du die Funktion uniqid() auch als Funktion aufgerufen und nicht als "Konstante" verwendet, hättest Du ein Krönchen bekommen.
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #7  
Alt 25.02.2007, 17:46:17
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Passwort-Funktion

Zitat:
Zitat von |Coding Beitrag anzeigen
Hättest Du die Funktion uniqid() auch als Funktion aufgerufen und nicht als "Konstante" verwendet, hättest Du ein Krönchen bekommen.
hups :-)
Mit Zitat antworten
  #8  
Alt 25.02.2007, 18:37:53
BruceCompanys BruceCompanys ist offline
Junior Member
 
Registriert seit: Oct 2006
Beiträge: 160
AW: Passwort-Funktion

Bin der PHP-Papst?

woher soll ich denn sowas riechen Hallo?

Aber danke für den Hinweis feuervogel...

ps: die nase musste nicht so hochtrage :D, damit ich was versteh^^
Mit Zitat antworten
  #9  
Alt 26.02.2007, 10:22:47
cyan.ide cyan.ide ist offline
Anfänger
 
Registriert seit: Feb 2007
Beiträge: 32
AW: Passwort-Funktion

Zitat:
Zitat von |Coding Beitrag anzeigen
Wer braucht ein 32 Zeichen langes Passwort?

Schon bei 8 Zeichen (a-z, A-Z, 0-9) macht eine Versuch das Passwort zu knacken keinen Sinn mehr.

Bei einem 8 Zeichen langen Passwort bestehend aus a-z, A-Z und 0-9 gibt es 218.340.105.584.896 mögliche Kombinationen.

Wer denkt da noch an einen Angriff auf's Passwort?
Anwendungsfall Forum:
Wenn man in etwa weiss, wann sich das Opfer registriert hat, sind es keine "218.340.105.584.896 mögliche Kombinationen" mehr. In der vorgestellten Funktion wurde ja auf uniqid() verzichtet. D.H. je genauer man den Registrierzeitpunkt kennt, umso kleiner wird die Spanne moeglicher Passwoerter. Es reicht schon fast, wenn ich den Tag kenne, um nur einen Bruchteil der moeglichen Kombinationen testen zu muessen. Wenn es sich dabei dann noch um ein Forum handelt, und ich ausschliessen kann, dass der Registrierzeitpunkt hinter(bzw. nach) dem ersten Postzeitpunkt liegt, nicht weit davor(also frueher), und zwischen Registrierung und erstem Post je nach laenge dessen etwas Zeit vergeht, hab ich recht schnell einen Account mit einer Passwortlaenge von 32 Zeichen geknackt. (...kenntnisse vom Code vorrausgesetzt, aber ein stolzer Author kommt auch irgendwann mit einem ins Gespraech ^^).

Nur so zum Nachdenken, wie ich zu dem Schluss komme, dass 32 Zeichen lange Passwoerter alleine nicht gleich besonders Sicher sein muessen...

Uniqid macht hier an sich auch nicht besonders viel Boden wett, im uebrigen. Hier muss man schon etwas tiefer in der Materie stecken um zu wissen, warum. Tipp:

PHP-Code:
$geheimezahl 2588983754;

function 
makePassword$length 
{
    global 
$geheimezahl;
    return 
substrmd5( ( microtime() - $geheimezahl ) . uniqid() ) , $length );
}

echo 
makePassword); 
_Ich_ halte die Funktion jetzt fuer sicher.
Bitte meckert jetzt nicht wegen dem global rum ;)

Ich hoffe, ich konnte etwas helfen,

Gruss
Mit Zitat antworten
  #10  
Alt 26.02.2007, 10:43:56
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: Passwort-Funktion

Einen offensichtlich bekannten Timestamp zuverwenden ist in der Tat nicht gerade das Beste.

Ich halte es bei meinen Passwörtern immer so, das ich nicht nur a-z, A-Z und 0-9 verwende sondern auch Sonderzeichen und diese Passwörter sind meiner Meinung nach sicher genug um zusagen, dass da ein direkter Angriff auf's Passwort keinen Sinn mehr macht.
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Textfelder per Funktion überprüfen juergen HTML, CSS und JavaScript Help! 2 06.11.2006 01:43:28
Firefox 1.5 Funktion angeblich nicht definiert Andes HTML, CSS und JavaScript Help! 4 28.07.2006 21:55:36
PhpAdsNew2 - Probleme mit Client Passwort djbackbone PHP Entwicklung und Softwaredesign 0 09.04.2006 20:31:10
passwort ändern - ich kann es ändern alle anderen nicht Tikiwiki PHP Grundlagen 2 22.02.2006 12:30:35
Formularwerte einer Funktion übergeben? wemi PHP für Fortgeschrittene und Experten 6 15.02.2005 08:59:04


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:31:05 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt