Zur Navigation

Portal mit Login und Chat [4]

31 Tilman

Danke, Rudy!

Ich habe es gleich einmal ausprobiert (funktionier aber leider nicht :-()

Ich habe den JavaScript-Code auf mein Webspace kopiert und so eingebunden:
<script type="text/javascript" src="../js/password.js"></script>

Bei dem Eingabefeld des Passworts habe ich wie beim Beispiel noch das hier hinzugefügt:
onkeyup="this.form.hash.value = SHA1(this.form.decoded.value)"

Fehlt irgendwas? Habe ich etwas falsch gemacht?

13.08.2008 11:52 | geändert: 13.08.2008 12:03

32 Rudy

Hi,

ich würde das im onsubmit der Form machen.

<?php
  if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
    print_r($_POST);
    die();
  }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
  <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  <title>Login</title>
  <script type="text/javascript" src="/js/webtoolkit.sha1.js"></script>
  <script type="text/javascript">
    function encodepwd() {
      document.getElementById('hash').value = SHA1(document.getElementById('password').value);
      document.getElementById('password').value = '';
      return true;
    }
  </script>
</head>
<body>
  <form method="post" onsubmit="return encodepwd();">
    <fieldset>
      <legend>Login</legend>
      <noscript><strong>Bitte aktivieren Sie Javascript für einen sicheren Login.</strong></noscript>
      <input type="hidden" name="hash" id="hash" value="" />
      <label for="username">Benutzername:</label>
      <input type="text" name="username" id="username" value="" /><br />
      <label for="password">Passwort:</label>
      <input type="password" name="password" id="password" value="" />
      <input type="submit" value="Login" />
    </fieldset>
  </form>
</body>
</html>


N.B: das wie Du das jetzt machst ist es unbedeutend besser als ein Klartext-Passwort zu senden. Der einfache Hash, bleibt er immer gleich, ist sonst gleich gut wie ein Passwort. Um das wirklich sicher zu machen, müsstest Du ein System machen, wo sich die hashes servergesteuert ändern, z.B. mit verfallenden Salts. Aber in diese Details kannst Du Dich später mal vertiefen.

13.08.2008 13:05 | geändert: 13.08.2008 15:22

34 Tilman

Wird mit dieser Verschlüsselung das Passwort auch verschlüsselt in die Datenbank eingetragen? (Bei mir nicht)

23.08.2008 10:21

35 Tilman

Ich glaube, dass der obige Script bei mir nicht funktioniert!

26.08.2008 11:07

36 Jörg

Bei mir funktioniert es einwandfrei. Der Pfad zur webtoolkit.sha1.js ist bei dir korrekt gesetzt?

26.08.2008 14:26

37 Tilman

Hallo! Hab es nochmal ganz neu gemacht, jetzt funktionierts auch bei mir.

Ich habe einmal das normale Passwortfeld und dann noch ein "Passwort-wiederholen"-Feld. Dürfen beide Felder die id 'password' für das Script besitzen?

2. Frage: Muss ich im CSS-Dokument extra noch die id password hinzufügen für die Formationen des Eingabefeldes oder kann ein Eingabefeld zu einer id und einer Klasse gehören?

27.08.2008 14:01

38 Jörg

Ich habe einmal das normale Passwortfeld und dann noch ein "Passwort-wiederholen"-Feld. Dürfen beide Felder die id 'password' für das Script besitzen?

Nein, eine ID kann nur einmal vergeben werden.

2. Frage: Muss ich im CSS-Dokument extra noch die id password hinzufügen für die Formationen des Eingabefeldes oder kann ein Eingabefeld zu einer id und einer Klasse gehören?

Ja, zweiteres ist möglich.

27.08.2008 17:16

39 Tilman

Hallo Jörg. Muss ich diesen Script dann noch einmal einfügen, angepasst auf das Feld Passwort-wiederholen?

<script type="text/javascript">
    function encodepwd() {
      document.getElementById('[i]hash2[/i]').value = SHA1(document.getElementById('passwortwiederholen').value);
      document.getElementById('passwordwiederholen').value = '';
      return true;
    }
  </script>

"hash" muss ich dann aber einen anderen Namen geben, z.B. hash2?

28.08.2008 11:21

40 Jörg

Du kannst beide Passwörter in der Funktion verschlüsseln

    function encodepwd() {
      document.getElementById('hash').value = SHA1(document.getElementById('password').value);
      document.getElementById('password').value = '';
      document.getElementById('hash2').value = SHA1(document.getElementById('passwordwiederholen').value);
      document.getElementById('passwordwiederholen').value = '';
      return true;
    }

Entsprechend benötigst du dann noch ein hidden input "hash2"

28.08.2008 18:08