Gå til innhold

Hvilken kryptering er den beste som du kan ta i bruk vha. PHP ?


Anbefalte innlegg

Videoannonse
Annonse

jupp, som hash anbefales sha1 med salt. Hva saltet skal være er ikke godt å si - men det bør være ulikt for alle brukere (hvis vi tenker brukerpålogging). Samtidig er det lett å gjette at brukernavn blir brukt som salt, så kanskje det er bedre å sha1(strlen($username)) eller noe annet rart? Om folk klarer å gjette saltet sliter du. For som allerede nevt: det finnes plenty av "rainbow"-tables som løser passord med opp mot 30 tegns lengde.

 

Til kryptering derimot bør du vel bruke SSL3 / TLS med offentlig og privat nøkkel. Men sertifikat-utlevering o.l. kan jeg ikke nok om - det eneste jeg vet er at god sikkerhet er relativt vanskelig å få til.

Lenke til kommentar

Saltet kan også være

$salt = substr( sha1( microtime(true) ), 0, 10 );

Da får du et relativt unikt salt for hver bruker.

 

Eller du kan dra den enda lengre

$salt = '';

for ( $i = 0; $i < 10; $i++ )
{
$num   = rand(33, 126);

if ( $num == '92' )
{
	$num = 93;
}

$salt .= chr( $num );
}

echo $salt;

Endret av M4rTiN
Lenke til kommentar

mange gode løsninger folk kommer med her ser jeg.

Men bare et spørsmål som da her dukket opp..

Bør jeg da altså generere et passord til mine brukere som blir lagret som en sha1+salt verdi. Eller skal jeg la brukerens valgte passord være input'et innerst i saltet?

 

Når det gjelder kryptering tenker jeg å kjøre over https protokollen etterhvert vil jeg tro. Er jo her snakk om hvor stor er sannsynligheten for at noen vil bryte seg inn på mitt system.. har jeg i det hele tatt noe som er av interesse for folk?

 

Det med at jeg ønsker et sikkert system tror jeg nok går mer

på min egen paranoia som ferdigutdannet informatikkstudent (om 3 uker).

...til slutt må jeg si meg helt enig i qualbeen..

Det finnes IKKE et 100% SIKKERT system, tiden knekker alle system...

 

 

mvh

Vegard

Lenke til kommentar

Du kan gjøre noe slikt

$salt = den_methoden_du_velger();

$passhash = sha1( sha1( $salt ) . sha1( $userdefinedpassword ) );
mysql_query( "INSERT INTO members( salt,passhash ) VALUES( '$salt', '$passhash' )";

Når de da logger inn henter du først saltet basert på brukernavnet de skriver inn, så sjekker du om salt+passord er det samme som du har i databasen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...