webForumDet fria alternativet

Login med md5()

13 svar · 200 visningar · startad av Chavez

ChavezMedlem sedan maj 20001 953 inlägg
#1

Jag har suttit och funderat på hur man skall göra för att skapa ett loginsystem som är någorlunda säkert.
Som det är nu så kolla jag bara om en viss cookie är satt och vilket värde som den har (värdet är användarnamnet).
Detta är ju inte alls säkert eftersom man ganska enkelt kan "konstruera" denna cookie.

Jag skulle vilja använda mig av md5() eller någon annan sådan funktion för att skapa ett system som var lite mer säkert.
Har läst igenom lite om md5() (bla på PHPBuilder) men har inte hittat något riktigt konkret på hur ett sådant loginsystem skulle kunna se ut.
Så om någon har något system som fungerar såhär, skulle inte ni kunna posta koden för det? Eller åtminstone så mycket kod så att jag fattar resten själv ;)

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

BatboyMedlem sedan jan. 20001 006 inlägg
#2

PHP Mini Auth är lätt att använda och det bygger på md5.
http://www.hotscripts.com/Detailed/4219.html

/j

------------------
R6

ChavezMedlem sedan maj 20001 953 inlägg
#3

Fick detta felet när jag skulle öppna zippfilen: Error reading header after processing 0 entries.

Testade att ladda ned den på nytt. Men samma fel. Du har den inte upplagd någon annan stans?

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

BatboyMedlem sedan jan. 20001 006 inlägg
#4

Prova www.batboy.net/youck/phpminiauth_0.01.tar.gz

/j

------------------
R6

ChavezMedlem sedan maj 20001 953 inlägg
#5

Det fungerade bättre. Tack så mycket! Skall utforska koden och se om det kan vara något för mig.

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

ChavezMedlem sedan maj 20001 953 inlägg
#6

Hmm, har inte orkat ta tag i det. Men idag så försökte jag börja och kolla över vad det är för något.

Fyllde databasen med strukturen. Men sedan när jag skulle fylla den med en användare så blev det stopp.
För gjorde jag det direkt i mysql med denna raden:

INSERT INTO acl ( username, password ) VALUES ( 'chavez', encrypt('lösenordet','chavez') );

Det gick inte, fick detta felet i mysql:

Error 1048 at line 1: Column password can not be null

Varför får man detta felet? Borde man ju inte få. Men men, försökte att göra det med ett PHP script istället, med denna koden:

<?php

$db = mysql_connect(localhost,root) or die ("Något gick fel vid koppling till databasen");
$vald = mysql_select_db(gtv2,$db) or die ("Något gick fel när databasen skulle väljas ut");

$laggtill = mysql_query("INSERT INTO acl ( username, password ) VALUES ( 'chavez', encrypt('lösenordet','chavez')");

if ($laggtill){
echo "Det funkade nog";
}else{
echo "Det funkade nog inte";
}
?>

Men det funkade inte det heller (fick utskriften "Det funkade nog inte").
Varför fungerar det inte som det ska?

Observera att denna frågan egentligen inte har så mycket med just dessa scripten att göra, så ni kan svara även om ni inte vet vad detta lilla auth system är för något.

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

[Redigerat av Chavez den 21 feb 2001]

[Redigerat av Chavez den 21 feb 2001]

BatboyMedlem sedan jan. 20001 006 inlägg
#7

Hmm..

Om du skriver INSERT INTO acl SET username = 'chavez', password = encrypt('lösenordet','chavez'); istället så fungerar det. Varför det är så vet jag inte riktigt.

/j

------------------
R6

ChavezMedlem sedan maj 20001 953 inlägg
#8

Funkade inte det heller. Det känns som om encrypt inte rikigt vill :)

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

BatboyMedlem sedan jan. 20001 006 inlägg
#9

Vänta.. nu ser jag, du har glömt en avslutande parantes i ditt script.

$laggtill = mysql_query("INSERT INTO acl ( username, password ) VALUES ( 'chavez', encrypt('lösenordet','chavez'))");

/j

------------------
R6

ChavezMedlem sedan maj 20001 953 inlägg
#10

r: Hmm, detta är kanske inte en PHP funktion :q :)

Fortfarande inte rätt. Men det verkar som om encrypt inte fungerar överhuvudtaget. Denna koden:

$krypterad = encrypt('lösenordet','chavez');

ger detta felet:

Fatal error: Call to undefined function: encrypt() in C:\Inetpub\wwwroot/test2.php on line 2

Fungerar inte den funktionen på min härliga w2k burk?

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

[Redigerat av Chavez den 22 feb 2001]

spangoMedlem sedan juni 20008 205 inlägg
#11

Trista nyheter...

ENCRYPT(str[,salt])
Encrypt str using the UNIX crypt() system call. The salt argument should be a string with two characters. (As of MySQL 3.22.16, salt may be longer than two characters.):
[...]
If crypt() is not available on your system, ENCRYPT() always returns NULL. ENCRYPT() ignores all but the first 8 characters of str, at least on some systems. This will be determined by the behavior of the underlying crypt() system call.

Det tycks finnas både ett och två sätt att kryptera strängar på, dock.
http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#Miscellaneous_functions

------------------
Tror du på ett liv efter födseln?

ChavezMedlem sedan maj 20001 953 inlägg
#12

Med Unix, menar de just Unix. Eller tror ni att det fungerar på en Linuxburk?

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

spangoMedlem sedan juni 20008 205 inlägg
#13

Linux är UNIX. Det finns inget "100% UNIX", utan en massa dialekter.
Så ja, det borde funka...

------------------
Tror du på ett liv efter födseln?

toldoMedlem sedan aug. 20004 inlägg
#14

funktion som du ska använda funkar så här: md5('lösenordet');

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)