Cyperfriend
Der ohne Avatar
- Registriert
- 14 Juli 2013
- Beiträge
- 1.123
Anbei möchte ich hier mein Script veröffentlichen mit dem man sich ein Passworthash auf Basis von SHA512 erstellen kann und dies dann ordentlich versalzt, damit so genannte Regenbogentabellen nutzlos werden und die Sicherheit der Benutzer dadurch deutlich erhöht wird, selbst wenn Benutzer so einfache Passwörter wie "test" oder "123" verwenden (Was trotzdem nicht empfohlen ist).
Das Script erhebt keinen Anspruch auf absolute Sicherheit. Es soll aber Anfängern eine Codebasis liefern und die Funktionsweise verdeutlichen.
Viel Spaß
Mit Datenbankanbindung:
Ohne Datenbank:
Das Script erhebt keinen Anspruch auf absolute Sicherheit. Es soll aber Anfängern eine Codebasis liefern und die Funktionsweise verdeutlichen.
Viel Spaß
Mit Datenbankanbindung:
PHP:
<?php
if(isset($_POST['senden'])){
# Datenbankinformationen
$db_user = "";
$db_pass = "";
$db_name = "";
$db_table = "";
$db_connect = mysql_connect("", $db_user, $db_pass);
mysql_select_db($db_name) or die (mysql_error());
# Salt generieren
$for_salt = ("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
$for_salt .= ("abcdefghijklmnopqrstuvwxyz");
$for_salt .= ("123456789");
$for_salt .= ("-.,_:;!$%&/()=?<>");
for ($i=0;$i<100;$i++) {
$tmp = mt_rand(0, strlen($for_salt)-1);
$salt .= $for_salt[$tmp];
}
# Passwort und Salt vermischen
$passwd = hash('sha512', ($_POST['passwort']).$salt);
$qry = "update $db_table set passwort='".mysql_real_escape_string($passwd)."', salt='".$salt."' where id=1";
$res = mysql_query($qry, $db_connect) or die (mysql_error());
# Tabelle direkt wieder auslesen
$qry = "select * from $db_table where id=1";
$res = mysql_query($qry, $db_connect) or die (mysql_error());
while ($row= mysql_fetch_array($res)){
echo "Passwort: ".htmlspecialchars($row['passwort'])."<br>";
echo "Salt: ".htmlspecialchars($row['salt'])."<br>";
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Passwort-Hash-Generator</title>
</head>
<body>
<form action="test.php" method="post">
<input type="text" name="passwort">
<input type="submit" name="senden" value="Erstelle">
</form>
</body>
</html>
Ohne Datenbank:
PHP:
<?php
if(isset($_POST['senden'])){
# Salt generieren
$for_salt = ("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
$for_salt .= ("abcdefghijklmnopqrstuvwxyz");
$for_salt .= ("123456789");
$for_salt .= ("-.,_:;!$%&/()=?<>");
for ($i=0;$i<100;$i++) {
$tmp = mt_rand(0, strlen($for_salt)-1);
$salt .= $for_salt[$tmp];
}
# Passwort und Salt vermischen
$passwd = hash('sha512', ($_POST['passwort']).$salt);
echo "Passwort: ".htmlspecialchars($passwd)."<br>";
echo "Salt: ".htmlspecialchars($salt)."<br>";
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Passwort-Hash-Generator</title>
</head>
<body>
<form action="test.php" method="post">
<input type="text" name="passwort">
<input type="submit" name="senden" value="Erstelle">
</form>
</body>
</html>
Zuletzt bearbeitet: