---
title: "kryptering?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/16596-kryptering"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "greymane"
published: "2002-01-20T14:16:00.000Z"
updated: "2002-01-22T07:13:00.000Z"
replies: 11
views: 261
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/16596-kryptering"
---

# kryptering?

## #1 — greymane, 2002-01-20T14:16Z

om jag ska skicka ett lösenord till en mysqldb, så har jag förstått att det är bra att kryptera infon. hur gör man det på ett lämpligt sätt? jag har läst manualen, fast jag blir inte klok på det. hur gör man?

Permalänk: https://www.webforum.nu/p/16596

## #2 — spango, 2002-01-20T22:55Z

ENCRYPT eller PASSWORD:
 <http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#Miscellaneous_functions>  

ENCRYPT torde dock bara funka på \*NIX-system.

Permalänk: https://www.webforum.nu/p/325976

## #3 — spango, 2002-01-21T12:36Z

Ett litet tillägg, om du kör med ENCRYPT, använd då användarnamnet som "salt" till lösenordet. Det blir jobbigare att brute force-cracka då :)

Permalänk: https://www.webforum.nu/p/325977

## #4 — peronet, 2002-01-21T14:01Z

använd denna:

$cpwd = crypt( $password, "ty" );
Den ska fungera bra vettu.. tror den e bäst..

Permalänk: https://www.webforum.nu/p/325978

## #5 — spango, 2002-01-21T14:14Z

Fast det är inge bra att binda innehållet i databasen till en funktion i ett programmeringsspråk... använd de funktioner som finns i MySQL. Och det där jag sa om salt var bara skitsnack (tror jag...).

Permalänk: https://www.webforum.nu/p/325979

## #6 — peronet, 2002-01-21T14:28Z

Jag rekomenderar ändå crypt ovan.

Då det är ganska säkert att inte kunna kryptera upp ett lösenord, ska man kolla om det stämmer så krypterar man bara strängen man vill jämföra med och kollar om de är lika, annars är det fel.. :P

Är det så att någon glömmer lösenordet så får man helt enkelt byta.. 

Ganska bra att ha det såhär om någon nu skulle komma åt registret så kan ingen se vilka lösenord som används...

Permalänk: https://www.webforum.nu/p/325980

## #7 — greymane, 2002-01-21T15:01Z

så för att lägga in ett lösenord i dbn skriver jag: 

```
$cpwd = crypt( $password, "ty" );
```

och för att jämföra med lösenordet som användaren skriver in vid inloggning skriver jag typ:

```
if ($cpwd == crypt($anv_pwd, "ty") {
   echo "Rätt lösen"
}
else {
   echo "Fel lösen"
}
```

kan det va nåt?

Permalänk: https://www.webforum.nu/p/325981

## #8 — Chavez, 2002-01-21T16:56Z

Krypt fungerar inte på Windows om jag inte har fel? 
Varför inte använda en enkel md5()? Det tycker jag borde ge tillräcklig säkerhet?

Permalänk: https://www.webforum.nu/p/325982

## #9 — greymane, 2002-01-21T18:00Z

jag kör linux, så jag använder gärna crypt(). men hur gör man?! :)

Permalänk: https://www.webforum.nu/p/325983

## #10 — spango, 2002-01-21T22:47Z

Jag rekomenderar ändå crypt ovan.
Jag rekommenderar att man använder ENCRYPT eller PASSWORD i MySQL :) ENCRYPT använder sannolikt samma algoritm som crypt i php (eftersom de bestäms av det underliggande systemets krypteringsalgoritm), så de är lika säkra, men man slipper alla de problem man riskerar om man binder databasen till ett visst programmeringsspråk på en viss plattform. Tilläggas bör att PASSWORD är den algoritm  som används för att kryptera lösenorden i de tabeller som MySQL använder för att hålla reda på rättigheterna, så den lär inte vara helt kass den heller. Exempel:

```
$userName = "barbapappa";
$passwd = "skumgummi";

$conn = mysql_connect('localhost', 'foo', 'bar');
mysql_use_db('hemlisar');

$insert = "INSERT INTO user (u_name, u_passwd) VALUES ('$userName', PASSWORD('$passwd'))";
mysql_query($insert);

$search = "SELECT * FROM user WHERE u_passwd = PASSWORD('$passwd') AND u_name = '$userName'";
$result = mysql_query($search);
$row = mysql_fetch_object($result);

if(!$row){
echo "Felaktig inloggning"; // lösen eller anvnamn är fel
} else {
echo "Välkommen $row->u_name";
}
```

PASSWORD ovan går utmärkt att byta ut mot ENCRYPT: INSERT INTO user (u_name, u_passwd) VALUES ('$userName', ENCRYPT('$passwd', 'ty')). Observera att båda algoritmerna är "enkelriktade", så det går inte att dekryptera ett lösenord (inte utan brute force-cracking).

Permalänk: https://www.webforum.nu/p/325984

## #11 — spango, 2002-01-21T23:01Z

Förresten, bara så du vet så ger PASSWORD alltid ett resultat på 32 tecken (varför CHAR(32) är en lämplig datatyp för lösenordskolumnen) - förutsatt att jag nu minns rätt ;)

Permalänk: https://www.webforum.nu/p/325985

## #12 — oelbal, 2002-01-22T07:13Z

> Fast det är inge bra att binda innehållet i databasen till en funktion i ett programmeringsspråk... använd de funktioner som finns i MySQL. Och det där jag sa om salt var bara skitsnack (tror jag...).

Helt rätt, det känns som om du går omvägen via PHP, när det du söker redan finns i MySQL.

Permalänk: https://www.webforum.nu/p/325986

---

Tråden på webben: https://www.webforum.nu/amne/php/16596-kryptering
