Kom ihåg mig?
Home Menu

Menu


Generera md5

 
Ämnesverktyg Visningsalternativ
Oläst 2009-07-02, 02:58 #21
Hjalmarsson Hjalmarsson är inte uppkopplad
Medlem
 
Reg.datum: Jun 2008
Inlägg: 98
Hjalmarsson Hjalmarsson är inte uppkopplad
Medlem
 
Reg.datum: Jun 2008
Inlägg: 98
Citat:
Ursprungligen postat av Jonas
Citat:
Originally posted by -Hjalmarsson@Jul 1 2009, 21:25
Citat:
Ursprungligen postat av Jonas
MD5 är inget säkert sätt för att hasha lösenord.
Unna dig SHA-1 eller något starkare.
Och använd gärna en SALT eller något också. Tex i php:
Kod:
function hashpasspassword, salt
{
oldpass = str_splitpassword, intvalstrlenpassword / 2;
newpass = sha1oldpass0 . salt . oldpass1;
return newpass;
}
salt = €%/=OJKDKAS;
password = abc123;
hashpassword = hashpasspassword, salt;
Håller ju bara om strängens längd INTE är udda.
Kod:
return newpass;
return newpass;


Nej, det gör det inte.

intval() returnerar "false" om det är en bokstav först, är det siffror så returnerar den alla siffror fram tills det att ett icke numeriskt tecken dyker upp. Så är det en float så avrundar den nedåt.

Låt säga: 3.9 så returneras 3, vid a301 så returneras false osv.

Läs på om funktionerna...
Kod:
$salt = 'salt';
	$password = 'abcd123';
 
	$oldpass = str_split($password, intval(strlen($password) / 2));
	$newpass = $oldpass[0] . " - ". $salt . " - " .$oldpass[1];
Kod:
//oldpass
Array
(
  [0] => abc
  [1] => d12
  [2] => 3
)

//newpass
abc - salt - d12
Så du vill fortfarande splitta strängen var 3'e

Kod:
	$str = "0123456789abcdefghijk"; //21 tecken långt
	$arr = str_split($str, 10); //splittar var 10e
Kod:
Array
(
  [0] => 0123456789
  [1] => abcdefghij
  [2] => k
)
Kom igen nu för fan.
Hjalmarsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-02, 10:29 #22
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Vad är problemet?

Det kommer fortf. att ge samma resultat när användaren skriver in sitt lösenord?

Den användare först och andra placeringen i arrayen. Den 3dje används inte vid lösenordsskapande eller lösenordsverifiering. Ja, kan klassas som osäkert eftersom sista tecknet inte kontrolleras.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-02, 11:07 #23
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by Jonas@Jul 2 2009, 10:29
Vad är problemet?
Det kommer fortf. att ge samma resultat när användaren skriver in sitt lösenord?
Den användare först och andra placeringen i arrayen. Den 3dje används inte vid lösenordsskapande eller lösenordsverifiering. Ja, kan klassas som osäkert eftersom sista tecknet inte kontrolleras.
Hehe, ni missuppfattar väl varandra lite grann. Hur som helst så är det som du antyder en olämplig metod då ett antal olika lösenord ger samma resultat.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-02, 16:42 #24
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Citat:
Ursprungligen postat av tartareandesire
Citat:
Ursprungligen postat av Jonas
Vad är problemet?
Det kommer fortf. att ge samma resultat när användaren skriver in sitt lösenord?
Den användare först och andra placeringen i arrayen. Den 3dje används inte vid lösenordsskapande eller lösenordsverifiering. Ja, kan klassas som osäkert eftersom sista tecknet inte kontrolleras.
Hehe, ni missuppfattar väl varandra lite grann. Hur som helst så är det som du antyder en olämplig metod då ett antal olika lösenord ger samma resultat.
Jo, men man kan ev. byta ut så att varje användare har en unik salt. Då fungerar det.

Eller så byter man ut str_split emot:
Kod:
function hashpass ($password, $salt)
{
$len = intval(strlen($password) / 2);
$oldpass1 = substr($password, 0, $len);
$oldpass2 = substr($password, $len);
$newpass = sha1($oldpass2 . $salt . $oldpass2);
return $newpass;
}
Kan alltid byta ut sha1() mot hash().

Kod:
function hashpass ($password, $salt)
{
$len = intval(strlen($password) / 2);
$oldpass1 = substr($password, 0, $len);
$oldpass2 = substr($password, $len);

$tohash = $oldpass2 . $salt . $oldpass2;

$newpass = hash('whirlpool', $tohash);
return $newpass;
}
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-07-02, 17:09 #25
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Det funkar annars att bara köra så här:

Kod:
$oldpass = str_split($password, (strlen($password) / 2) + 1);
Tycker det är bäst att köra med både ett generellt och ett unikt salt.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 06:53.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017