/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
kryptering af tekst
Fra : Thomas Pedersen


Dato : 21-03-05 13:08

hej
http://www.webcafe.dk/artikler/apache/htaccesskrypterpassword/

Jeg har kopieret denne side på webcafe, og ville meget gerne have
en side hvor man kunne kryptere passwords ud af det. Men når jeg
trykker krypter, sker der intet??? Jeg har webhotel hos B-One, og
jeg mener at de kører med apache så tror ikke det er der
problemet er?? (Jeg er dog ikke 100% sikker)
Er der en som kan fortæle mig hvorfor jeg ikke får noget
krypteret frem?
Eller endnu bedre...Hvordan jeg får noget krypteret frem
mvh Thomas


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Thomas Damgaard Niel~ (21-03-2005)
Kommentar
Fra : Thomas Damgaard Niel~


Dato : 21-03-05 18:09

Thomas Pedersen wrote:
> http://www.webcafe.dk/artikler/apache/htaccesskrypterpassword/

Jeg aner ikke, hvem der har skrevet ovenstående guide, men den er
misvisende. Base64 har intet at gøre med kryptering.


> Er der en som kan fortæle mig hvorfor jeg ikke får noget
> krypteret frem?
> Eller endnu bedre...Hvordan jeg får noget krypteret frem

Er de to ting ikke det samme?
Hvad vil du kryptere/dekryptere? Med hvilken algoritme vil du gøre det?

Hvis det er fordi, du vil gemme passwords i en database eller lign. bør
du hellere se på hashing. Fx. kan du med funktionen sha1() lave et
SHA1-hash af en streng. Læs mere på
http://dk.php.net/manual/en/function.sha1.php.

--
Thomas Damgaard Nielsen - http://thomasdamgaard.dk
"Det er i hvert fald i størrelsesordenen 1000 eller flere om året der
dør i Danmark af partikler." -- Steffen Loft, professor, Københavns
Universitet

Jacob Atzen (21-03-2005)
Kommentar
Fra : Jacob Atzen


Dato : 21-03-05 18:20

On 2005-03-21, Thomas Damgaard Nielsen <tdn.usenet@gmail.com> wrote:
> Thomas Pedersen wrote:
>> http://www.webcafe.dk/artikler/apache/htaccesskrypterpassword/
>
> Jeg aner ikke, hvem der har skrevet ovenstående guide, men den er
> misvisende. Base64 har intet at gøre med kryptering.

Well, nu kaldes crypt() jo faktisk også. Det er godt nok mere hashing
end kryptering, men hvad

> Hvis det er fordi, du vil gemme passwords i en database eller lign.
> bør du hellere se på hashing. Fx. kan du med funktionen sha1() lave et
> SHA1-hash af en streng. Læs mere på
> http://dk.php.net/manual/en/function.sha1.php.

Lad os håbe, der snart kommer noget bedre til PHP.

<http://www.schneier.com/blog/archives/2005/02/sha1_broken.html>

--
Med venlig hilsen
- Jacob Atzen

Peter Brodersen (21-03-2005)
Kommentar
Fra : Peter Brodersen


Dato : 21-03-05 19:40

On 21 Mar 2005 17:19:41 GMT, Jacob Atzen <jacob@aub.dk> wrote:

>Lad os håbe, der snart kommer noget bedre til PHP.
>
><http://www.schneier.com/blog/archives/2005/02/sha1_broken.html>

Det påvirker dog ikke det at gemme passwords SHA-1-hashet i sin egen
applikation.

Svagheden omhandler, at det er lettere at skabe kollisioner. Hvis
SHA-1 er, hvad man har ved hånden, så er det stadigvæk helt fint til
mange formål.

--
- Peter Brodersen

Thomas Damgaard Niel~ (21-03-2005)
Kommentar
Fra : Thomas Damgaard Niel~


Dato : 21-03-05 20:48

Jacob Atzen wrote:
> On 2005-03-21, Thomas Damgaard Nielsen <tdn.usenet@gmail.com> wrote:
>
>>Thomas Pedersen wrote:
>>
>>>http://www.webcafe.dk/artikler/apache/htaccesskrypterpassword/
>>
>>Jeg aner ikke, hvem der har skrevet ovenstående guide, men den er
>>misvisende. Base64 har intet at gøre med kryptering.
>
>
> Well, nu kaldes crypt() jo faktisk også. Det er godt nok mere hashing
> end kryptering, men hvad

Præcis. Jeg mener at den guide bør pilles ned hurtigst muligt. Citat fra
guiden: ``Dine passwords bliver krypteret via det der i fagsprog
hedder base64-kryptering.´´. Det er jo pinligt.


>>Hvis det er fordi, du vil gemme passwords i en database eller lign.
>>bør du hellere se på hashing. Fx. kan du med funktionen sha1() lave et
>>SHA1-hash af en streng. Læs mere på
>>http://dk.php.net/manual/en/function.sha1.php.
>
>
> Lad os håbe, der snart kommer noget bedre til PHP.
>
> <http://www.schneier.com/blog/archives/2005/02/sha1_broken.html>

Det er begrænset, hvor relevant det kan være i dette tilfælde. Desuden
er der jo ikke noget i vejen for, at man selv implementerer f.eks.
SHA256 eller andre.

--
Thomas Damgaard Nielsen - http://thomasdamgaard.dk
"Det er i hvert fald i størrelsesordenen 1000 eller flere om året der
dør i Danmark af partikler." -- Steffen Loft, professor, Københavns
Universitet

Erik Ginnerskov (22-03-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 22-03-05 01:31

Thomas Damgaard Nielsen wrote:

> Jeg aner ikke, hvem der har skrevet ovenstående guide, men den er
> misvisende. Base64 har intet at gøre med kryptering.

Du må da for min skyld kalde det hvad du vil. Faktum er, at et password i
klar tekst bliver oversat til en entydig følge af store og små bogstaver
plus tal - og at længden på denne streng tilsyneladende altid er den samme,
uanset længden på det kodede password.

> Hvis det er fordi, du vil gemme passwords i en database eller lign.
> bør du hellere se på hashing. Fx. kan du med funktionen sha1() lave et
> SHA1-hash af en streng.

Hvis du havde læst spørgsmålet lidt grundigere, havde du opdaget, at det
drejer sig om login med .htaccess. Her er man nødt til at bruge base64,
uanset om der findes bedre krypteringer.

Brug lidt tid med at læse WebCafe's sider om .htaccess.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://frip.dk/ginnerskov



Michael Rasmussen (22-03-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 22-03-05 02:31

On Tue, 22 Mar 2005 01:31:21 +0100, Erik Ginnerskov wrote:

> Hvis du havde læst spørgsmålet lidt grundigere, havde du opdaget, at
> det drejer sig om login med .htaccess. Her er man nødt til at bruge
> base64, uanset om der findes bedre krypteringer.
>
Nu er sagen jo netop den, at base64 intet har at gøre med kryptering!
Base64 er encoding, der har til formål at transformere binær kodet data
til ascii-tekst.

Læs mere her: http://en.wikipedia.org/wiki/Base64

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Erik Ginnerskov (22-03-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 22-03-05 13:32

Michael Rasmussen wrote:

> Nu er sagen jo netop den, at base64 intet har at gøre med kryptering!
> Base64 er encoding, der har til formål at transformere binær kodet
> data til ascii-tekst.

Det er totalt irrelevant, om du kalder det kryptering eller kodning. Sagen
er, at til et .htaccess-login, skal man bruge en base64-transformering af
password. Og spørgsmålet gik på, hvordan man får den side til at fungere,
som kan lave den operation.

Det kommer til at fungere, hvis man lægger nedenstående kode ind mellem
<body> og </body> på en side, der *skal* hedde .php til 'efternavn':

<?php

if ($bruger && $pw) {
$krypteret = crypt("$pw",base64_encode("$pw"));
echo "<br /><br /><b>Brugernavn:</b> $bruger";
echo "<br /><b>Krypteret password:</b> $krypteret<br /><br />\n";
echo "I din \"httpasswd\"-fil skriver du sådan: ";
echo "<b>$bruger:$krypteret</b><br /><br />\n";
echo "<b>Kryptér nyt:</b><br /><br />";
}

echo "<form action=\"$PHP_SELF\" method=\"post\">";
echo "<fieldset>";
echo "<legend>Indtast brugernavn og ukrypteret password</legend>";
echo "<label for=\"t1\">Brugernavn:</label>";
echo "<input id=\"t1\" name=\"bruger\" value=\"$bruger\" /><br />\n";
echo "<label for=\"t2\">Password:</label>";
echo "<input id=\"t2\" name=\"pw\" value=\"$pw\" /><br />\n";
echo "<label for=\"t13\"> </label>";
echo "<input id=\"t13\" type=\"submit\" value=\"Kryptér\" />\n";
echo "</fieldset>";
echo "</form>";

?>

Bemærk, at min kode er lidt mere omfattende end den hos WebCafe, idet jeg
har lavet det sådan, at koden validerer.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://frip.dk/ginnerskov



Michael Rasmussen (22-03-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 22-03-05 13:49

On Tue, 22 Mar 2005 13:31:32 +0100, Erik Ginnerskov wrote:

> Det er totalt irrelevant, om du kalder det kryptering eller kodning. Sagen
> er, at til et .htaccess-login, skal man bruge en base64-transformering af
Det er da ikke irrelevant, hvis man kalder en spade for en skovl!
Kommunikation fordrer en fælles forståelse for et ords betydning. Siden
postulerer at base64 er kryptering, hvilket er ukorrekt. Samtidigt
henvender sitet sig til almindelige mennesker uden teknisk indsigt,
hvorfor det bør være åbenbart, at man skal være hel præcis i sine
formuleringer for ikke at sælge folk katten i sækken. Hvis min mor
læste forklaringen, ville hun være af den overbevisning, at hendes
password var krypteret, hvilket det i sagens natur ikke er.
Valg truffet på baggrund af misinformation, får ofte katastrofale
konsekvenser!

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Erik Ginnerskov (22-03-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 22-03-05 14:48

Michael Rasmussen wrote:

> Kommunikation fordrer en fælles forståelse for et ords betydning.

Vil du så ikke være så rar at definere forskellen på kodning og kryptering -
så selv din mor forstår det og forstår vigtigheden i forskellen.

Set fra min synsvinkel er en Trabant et køretøj, selv om den ikke tåler
sammenligning med en Rolls Royce.

Og en base64-kodning af et password gør det umuligt at gætte password og til
brug ved et .htaccess-login er det imho. ligegyldigt, om du kalder det en
skovl eller en spade. Det skal bare være base64.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://frip.dk/ginnerskov



Geert Lund (22-03-2005)
Kommentar
Fra : Geert Lund


Dato : 22-03-05 15:51

Erik Ginnerskov wrote:

> Set fra min synsvinkel er en Trabant et køretøj, selv om den ikke tåler
> sammenligning med en Rolls Royce.

Nu skal man jo passe på med at sammenligne når man ikke helt ved hvad
man sammenligner. At sammenligne en encoding med kryptering er vel
nærmere som at sammenligne æbler med pærer...

> Og en base64-kodning af et password gør det umuligt at gætte password og til
> brug ved et .htaccess-login er det imho. ligegyldigt, om du kalder det en
> skovl eller en spade. Det skal bare være base64.

Nej! Det er her du tager helt fejlt! Base64 encodingen sørger blot for
at strengen sendes gennem webserveren i et "sikkert" format - således fx
highbit (æøå osv.) tegn ikke forvanskes af forskellige charater
encodings på vejen.

Prøv fx:

<?php

$varPassword = base64_encode( "mithemmeligepassword" );

echo "Base64 encoded version: $varPassword<br><br>";

echo "Base64 decoded version: ". base64_decode( $varPassword )
.."<br><br>";

?>


Så vil du opdage at man med base64_decode uden problemer får det rigtige
password tilbage...

Se også: http://dk.php.net/base64_encode


Men - det der giver krypteringen i ekemplet på WebCafe - er funktionen
crypt() som leverer en en-vejs kryptering.

Ergo en base64_encoded streng kan køres igennem base64_decode og straks
har du passwordet - du behøver ikke engang gætte. Med crypt() har du en
krypteret version af dit password der ikke kan afkrypteres.

(lettere forsimplet og selv jeg har sikkert ikke forklaret begreberne
godt nok)

--
Med venlig hilsen
Geert Lund - www.gld.dk

Keld (22-03-2005)
Kommentar
Fra : Keld


Dato : 22-03-05 16:28

Dette er 100%.

Ville selv komme med en forklaring af samme type.

Flot og rigtigt forklaret så der ingen tvivl kan være.

--
Keld



Geert Lund (22-03-2005)
Kommentar
Fra : Geert Lund


Dato : 22-03-05 17:38

Geert Lund wrote:

> Nu skal man jo passe på med at sammenligne når man ikke helt ved hvad
> man sammenligner. At sammenligne en encoding med kryptering er vel
> nærmere som at sammenligne æbler med pærer...

Og det afsnit jeg nok lige manglede at skrive kommer så her:

Forskellen på kryptering og encoding er:

Encoding sikrer dine data ikke forvanskes under transporten (uanset
metoden - fx bruges base64 encoding til sikring af vedhæftede filer i en
mail da filer indeholder 8-bit tegn og ikke ikke kun 7-bit tegn som
normalt bruges. Altså base64 encodingen sørgrer for at konvertere det
transporterede fra 8-bit til det sikre 7-bit format) og sikrer dig at du
altid kan af-(de)kode indholdet tilbage til det originale format/indhold.


Kryptering sørgrer for at dine data under transport/lagring
hemmeligholdes og ikke kan læses i klartekst af de
øjne/maskiner/knudepunkter etc. det passerer på vejen - eller ved
utilsigtet adgang til det medie hvor det er lagret.

Kryptering kan være en-vejs eller to-vejs - altså kryptering af et
budskab vil ikke give meget mening hvis modtageren ikke med en
algoritme/nøgle/etc. kan afkode beskeden igen. To-vejs bruges altså
normalt til afsendelse af budskaber (e-mails, filer etc. hvor det
originale indhold skal kunne genskabes hos modtageren - men det sikres
at indholdet ikke kan ændres/læses undervejs).

En-vejs kryptering som bl.a. bruges af Apaches .htaccess system og som
funktionen crypt() i PHP bruger - er en hash værdi af dit oprindelige
udgangspunkt krypteret på en sådan måde at det ikke kan afkrypteres -
men man blot ved at kende det oprindelige udgangspunkt kan skabe
hash-værdien igen - og dermed sammenligne de to hash'es og man dermed er
klar over at du kender det oprindelige udgangspunkt (her passwordet i
klar tekst).

Det man sikrer ved denne en-vejs kryptering er at en brugers password
aldrig vil figurere i klartekst på serveren og serveren er i øvrigt
ligeglad med hvad dit klartekst password var - så længe du indtaster
"noget" der ved kryptering giver den samme hash-værdi som er gemt på
serveren. Ergo hvis nogen aflurer hash-værdien fordi de har fået
utilsigtet adgang til source-kode, server eller database - vil de aldrig
direkte kunne afkryptere den gemte værdi tilbage til dit klartekst password.

Puha, det blev lidt længere end forventet - men håber det lidt mere
forklarer princippet...

(og jeg tager stadig forbehold for noget blev for rodet i forsøget på at
opklare forskellen)


--
Med venlig hilsen
Geert Lund - www.gld.dk

Erik Ginnerskov (24-03-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 24-03-05 00:34

Geert Lund wrote:

En lang og grundig forklaring. Jeg takker.

Men det ændrer jo stadig ikke på, at man til .htaccess ikke har nogen
valgmulighed, det skal være base64. Og med hensyn til sikkerheden har jeg
erfaret, at et .htaccess ikke vil virke, hvis htpasswd ligger indenfor
webscope - den skal flyttes ud:

http://hjemmesideskolen.net/htaxs.php

Dermed skulle der ikke være risiko for andres 'kiggen over skulderen'.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://frip.dk/ginnerskov



Michael Rasmussen (24-03-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 24-03-05 00:42

On Thu, 24 Mar 2005 00:34:13 +0100, Erik Ginnerskov wrote:

>
> Men det ændrer jo stadig ikke på, at man til .htaccess ikke har nogen
> valgmulighed, det skal være base64.
Hvis browseren understøtter det, kan du også anvende Digest. Se
http://httpd.apache.org/docs/howto/auth.html#digest
Digest giver sikkerhed ved, at password sendes som et MD5 hash.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Jacob Atzen (24-03-2005)
Kommentar
Fra : Jacob Atzen


Dato : 24-03-05 00:49

On 2005-03-23, Michael Rasmussen <mir@miras.org> wrote:
> Hvis browseren understøtter det, kan du også anvende Digest. Se
> http://httpd.apache.org/docs/howto/auth.html#digest
> Digest giver sikkerhed ved, at password sendes som et MD5 hash.

Hvordan giver det sikkerhed?

--
Med venlig hilsen
- Jacob Atzen

Michael Rasmussen (24-03-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 24-03-05 00:53

On Wed, 23 Mar 2005 23:48:54 +0000, Jacob Atzen wrote:

>
> Hvordan giver det sikkerhed?
Password base64 encoded versus password MD5 hashed.
Vælg selv den version med størst sikkerhed.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Jacob Atzen (24-03-2005)
Kommentar
Fra : Jacob Atzen


Dato : 24-03-05 14:08

On 2005-03-23, Michael Rasmussen <mir@miras.org> wrote:
> Password base64 encoded versus password MD5 hashed.
> Vælg selv den version med størst sikkerhed.

IMHO giver ingen af dem sikkerhed i det aktuelle tilfælde
(brugernavn/kodeord sendt til webserver).

--
Med venlig hilsen
- Jacob Atzen

Michael Rasmussen (24-03-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 24-03-05 14:55

On Thu, 24 Mar 2005 13:07:43 +0000, Jacob Atzen wrote:

>
> IMHO giver ingen af dem sikkerhed i det aktuelle tilfælde
> (brugernavn/kodeord sendt til webserver).
Er det man-in-the-middle attack, du tænker på?
--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Jacob Atzen (24-03-2005)
Kommentar
Fra : Jacob Atzen


Dato : 24-03-05 15:41

On 2005-03-24, Michael Rasmussen <mir@miras.org> wrote:
> On Thu, 24 Mar 2005 13:07:43 +0000, Jacob Atzen wrote:
>
>>
>> IMHO giver ingen af dem sikkerhed i det aktuelle tilfælde
>> (brugernavn/kodeord sendt til webserver).
> Er det man-in-the-middle attack, du tænker på?

Ja.

--
Med venlig hilsen
- Jacob Atzen

Michael Rasmussen (24-03-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 24-03-05 16:02

On Thu, 24 Mar 2005 14:41:25 +0000, Jacob Atzen wrote:

>
> Ja.
Det burde kunne løses ved at kombinere det med https.
--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Thomas Damgaard Niel~ (24-03-2005)
Kommentar
Fra : Thomas Damgaard Niel~


Dato : 24-03-05 01:01

Erik Ginnerskov wrote:
> Vil du så ikke være så rar at definere forskellen på kodning og kryptering -
> så selv din mor forstår det og forstår vigtigheden i forskellen.

Ikke her.
Det hører hjemme et andet sted. Muligvis i dk.videnskab(?).


> Set fra min synsvinkel er en Trabant et køretøj, selv om den ikke tåler
> sammenligning med en Rolls Royce.

Yep. Den *er* et køretøj. Base-encoding er *ikke* kryptering. Det har
faktisk intet med sammenligning at gøre.


> Og en base64-kodning af et password gør det umuligt at gætte password og til
> brug ved et .htaccess-login er det imho. ligegyldigt, om du kalder det en
> skovl eller en spade. Det skal bare være base64.

Hvis du mener, at base64-encoding ikke kan decodes, tager du grueligt fejl.

--
Thomas Damgaard Nielsen - http://thomasdamgaard.dk
"Det er i hvert fald i størrelsesordenen 1000 eller flere om året der
dør i Danmark af partikler." -- Steffen Loft, professor, Københavns
Universitet

Thomas Pedersen (22-03-2005)
Kommentar
Fra : Thomas Pedersen


Dato : 22-03-05 16:08


> Det kommer til at fungere, hvis man lægger nedenstående kode ind mellem
> <body> og </body> på en side, der *skal* hedde .php til 'efternavn':
>

Jeg kalder den .php, men den virker ikke. Nu har jeg kopieret din kode, men
med samme resultat.
Jeg har lagt en testside her, hvor du kan se hvad der sker.
http://www.reunite.dk/kryptering4.php

Kan nogen sige hvad der er galt???
mvh Thomas


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Thomas Pedersen (22-03-2005)
Kommentar
Fra : Thomas Pedersen


Dato : 22-03-05 16:24

Thomas Pedersen wrote in dk.edb.internet.webdesign.serverside.php:
> Jeg kalder den .php, men den virker ikke. Nu har jeg kopieret din kode, men
> med samme resultat.
> Jeg har lagt en testside her, hvor du kan se hvad der sker.
> http://www.reunite.dk/kryptering4.php
>
> Kan nogen sige hvad der er galt???
> mvh Thomas

JA, det kan jeg selv fortælle. Jeg fik svaret i en anden NG.
Det er fordi B-One har slået "register Globals" til. Det gad de åbenbart bare
ikke fortælle om da jeg fortalte om mit problem????
Tak for hjælpen til alle som bidrog.
/Thomas

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste