ein IRC

Ich habe eine Idee - ich schreibe für sie jetzt einen IRC - ich habe schon mal einen geschrieben, aber mit MySQL - und - das mache ich - das habe ich damals mit DOM gemacht, weil die Nachrichten aktualisieren sich ja nicht selber - sonst mit PHP alleine - mit DOM komme ich ohne Anleitung nicht zu recht

Und was ich noch mache - ich mache auf beiden seiten, wieder das phpbb3 Forum rein.

OK - und sonst sage ich nichts.

https://www.ituenix.de/wwwprogs/list.html Nicht vergessen, meine PHP Skripte / Programme - Funktionsplotter - Scheme Compiler - unbekannte noch nicht fertig Sprache Compiler - vom Typ Oberon ...

Ok, ich habe phpBB3 auf ituenix.de installiert - es kommt noch nach yun7x.de

https://www.ituenix.de/phpBB3/

Wenn ich damit fertig bin, kommt mein IRC - mit Anmeldung, aber ohne E-Mail Verifizierung und mit MySQL - Database.

OK, der erste Teil funktioniert schon mal, ich zeige die Quelltexte - im nächsten Moment - nicht DOM sondern AJAX - damit das richtig aktualisiert wird.

Für IRC brauchen wir AJAX.

<?php
session_start ();
?>

<form method="POST" action="./irc.php">
<input type="text" name="name0007" id="id0007"></input>
<input type="submit">
</form>

<?php
$postmin = 4;
$postmax = 512;

if (!isset($_SESSION ["nameircituenixde"])) {
    echo "Sie sind leider nicht eingelogged<br>";
    echo "<a href=\"./login.php\">login.php</a>";
}
else
    echo "Name: " . $_SESSION ["nameircituenixde"] . "<br>";

    include ("/home/david/ircsecrets.php");
    $postingtext = htmlentities (htmlentities ($_POST ["name0007"]));

    $db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

    $sql = "USE " . $ircdbname;
    $db->query ($sql);
    $sql = "SELECT * FROM postings";
    $stmt = $db->query ($sql);
    echo "<table>";
    echo "<tr>";
    echo "<td> Username </td> <td> Date/Time </td> <td> Posting </td>";
    echo "</tr>";
    while ($row = $stmt -> fetch ()) {
        echo "<tr>";
        echo "<td>" . $row [0] .  "</td> <td>" . $row [1] .  "</td> <td>" . $row [2] .  "</td>";
        echo "</tr>";
    }
    echo "</table>";
    if ((strlen ($postingtext) > $postmin) && (strlen ($postingtext) < $postmax)) {
        $sql = "INSERT INTO postings (user, datetime, posting) VALUES (\"" . $_SESSION ["nameircituenixde"]  . "\",\"" . date('Y-m-d H:i:s') .  "\",\"" .   $postingtext . "\"); ";
        $db->query ($sql);
    }
    else if (strlen ($postingtext) < $postmin)
        echo "Das Postings muss groesser "  . $postmin . " Zeichen sein";
    else
        echo "Das Postings muss kleiner "  . $postmax . " Zeichen sein";
    $sql = "QUIT";
    $db->query ($sql);
?>
<?php
session_start ();
?>

<form method="POST" action="./login.php">
Name: <input id="id0004" type="text" name="name0004"></input>
Passwort: <input id="id0005" type="password" name="name0005"></input>
<input id="id0006" type="submit"></input>
</form>

<?php
include ("/home/david/ircsecrets.php");
$newircuser = htmlentities ($_POST ["name0004"]);
$newircuserpassword = htmlentities ($_POST ["name0005"]);

$db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

$sql = "USE " . $ircdbname;
$db->query ($sql);

$sql = "SELECT user FROM users WHERE user = \"" . $newircuser .  "\"; ";
$stmt = $db->query ($sql);
if ($stmt -> rowCount () == 0) {
    echo "Dieser Nutzername ist nicht vorhanden";
}
else {
    $sql = "SELECT password FROM users WHERE user = \"" . $newircuser .  "\"; ";
    $stmt = $db->query ($sql);
    $row = $stmt -> fetch ();
    if (strcmp ($row [0], md5 ($newircuserpassword)) != 0) {
        echo "Falsches Passwort";
        unset ($_SESSION ["nameircituenixde"]);
    }
    else {
        $_SESSION ["nameircituenixde"] = $newircuser;
        echo "Sie sind angemeldet <br>";
        echo "<a href=\"./irc.php\">irc.php</a>";
    }
    $sql = "QUIT";
    $db->query ($sql);
}
?>
<?php
session_start ();
?>

<form method="POST" action="./register.php">
Name: <input id="id0001" type="text" name="name0001"></input>
Passwort: <input id="id0002" type="password" name="name0002"></input>
<input id="id0003" type="submit"></input>
</form>

<?php
include ("/home/david/ircsecrets.php");
$newircuser = htmlentities ($_POST ["name0001"]);
$newircuserpassword = htmlentities ($_POST ["name0002"]);

$db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

$sql = "USE " . $ircdbname;
$db->query ($sql);

$sql = "SELECT user FROM users WHERE user = \"" . $newircuser .  "\"; ";
$stmt = $db->query ($sql);
if ($stmt -> rowCount () != 0) {
    echo "Dieser Nutzername ist bereits vergeben";
}
else {
    $sql = "INSERT INTO users (user, password) VALUES (\"" . $newircuser .  "\",\"" . md5($newircuserpassword) . "\"); ";
    $db->query ($sql);
    echo "Sie sind registriert<br>";
    echo "<a href=\"./login.php\">login.php</a>";
}

$sql = "QUIT";
$db->query ($sql);

session_destroy ();
?>

Ich muss noch ein logout schreiben mit

session_destroy ()

Ich mache es nachher mit CSS dass es gescheiht aussieht.

OK, es funktioniert fantastisch, mit diesem Ding hier Ich verstehe jetzt auch wie Ajax Genau funktioniert, ich muss darüber keinen Kopf zerbrechen, ich weiss wie es geht

dann natürlich mit

setIntervall ()
immer wieder aufrufen - Entschuldigung, ich habe vorher die geschweifte Klammer vergessen.

<div id="content"></div>

<script>
setInterval(function(){loadDoc();}, 1000);
function loadDoc() {
  const xhttp = new XMLHttpRequest();
  xhttp.onload = function() {
    document.getElementById("content").innerHTML = this.responseText;
  }
  xhttp.open("GET", "dbload.php");
  xhttp.send();
}
</script>

<?php
session_start ();
?>

<?php

    include ("/home/david/ircsecrets.php");
    $postingtext = htmlentities (htmlentities ($_POST ["name0007"]));

    $db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

    $sql = "USE " . $ircdbname;
    $db->query ($sql);

    $sql = "SELECT * FROM postings";
    $stmt = $db->query ($sql);
    echo "<table>";
    echo "<tr>";
    echo "<td> Username </td> <td> Date/Time </td> <td> Posting </td>";
    echo "</tr>";
    while ($row = $stmt -> fetch ()) {
        echo "<tr>";
        echo "<td>" . $row [0] .  "</td> <td>" . $row [1] .  "</td> <td>" . $row [2] .  "</td>";
        echo "</tr>";
    }
    echo "</table>";
?>

<?php
session_start ();
?>

<form method="POST" action="./irc.php">
<input type="text" name="name0007" id="id0007"></input>
<input type="submit">
</form>

<div id="content"></div>

<script>
setInterval(function(){loadDoc();}, 1000);
function loadDoc() {
  const xhttp = new XMLHttpRequest();
  xhttp.onload = function() {
    document.getElementById("content").innerHTML = this.responseText;
  }
  xhttp.open("GET", "dbload.php");
  xhttp.send();
}
</script>

<?php
$postmin = 4;
$postmax = 512;

if (!isset($_SESSION ["nameircituenixde"])) {
    echo "Sie sind leider nicht eingelogged<br>";
    echo "<a href=\"./login.php\">login.php</a>";
}
else {
    echo "Name: " . $_SESSION ["nameircituenixde"] . "<br>";

    include ("/home/david/ircsecrets.php");
    $postingtext = htmlentities (htmlentities ($_POST ["name0007"]));

    $db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

    $sql = "USE " . $ircdbname;
    $db->query ($sql);
    if ((strlen ($postingtext) > $postmin) && (strlen ($postingtext) < $postmax)) {
        $sql = "INSERT INTO postings (user, datetime, posting) VALUES (\"" . $_SESSION ["nameircituenixde"]  . "\",\"" . date('Y-m-d H:i:s') .  "\",\"" .   $postingtext . "\"); ";
        $db->query ($sql);
    }
    else if (strlen ($postingtext) < $postmin)
        echo "Das Postings muss groesser "  . $postmin . " Zeichen sein";
    else
        echo "Das Postings muss kleiner "  . $postmax . " Zeichen sein";
    echo "<br><a href=\"./logout.php\">logout</a>";

}

?>

<?php
session_start ();
?>

<form method="POST" action="./login.php">
Name: <input id="id0004" type="text" name="name0004"></input>
Passwort: <input id="id0005" type="password" name="name0005"></input>
<input id="id0006" type="submit"></input>
</form>

<?php
include ("/home/david/ircsecrets.php");
$newircuser = htmlentities ($_POST ["name0004"]);
$newircuserpassword = htmlentities ($_POST ["name0005"]);

$db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

$sql = "USE " . $ircdbname;
$db->query ($sql);

$sql = "SELECT user FROM users WHERE user = \"" . $newircuser .  "\"; ";
$stmt = $db->query ($sql);
if ($stmt -> rowCount () == 0) {
    echo "Dieser Nutzername ist nicht vorhanden";
}
else {
    $sql = "SELECT password FROM users WHERE user = \"" . $newircuser .  "\"; ";
    $stmt = $db->query ($sql);
    $row = $stmt -> fetch ();
    if (strcmp ($row [0], md5 ($newircuserpassword)) != 0) {
        echo "Falsches Passwort";
        unset ($_SESSION ["nameircituenixde"]);
    }
    else {
        $_SESSION ["nameircituenixde"] = $newircuser;
        echo "Sie sind angemeldet <br>";
        echo "<a href=\"./irc.php\">irc.php</a>";
    }
}
?>
<?php
session_start ();
session_destroy ();
?>
<?php
session_start ();
?>

<form method="POST" action="./register.php">
Name: <input id="id0001" type="text" name="name0001"></input>
Passwort: <input id="id0002" type="password" name="name0002"></input>
<input id="id0003" type="submit"></input>
</form>

<?php
include ("/home/david/ircsecrets.php");
$newircuser = htmlentities ($_POST ["name0001"]);
$newircuserpassword = htmlentities ($_POST ["name0002"]);

$db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

$sql = "USE " . $ircdbname;
$db->query ($sql);

$sql = "SELECT user FROM users WHERE user = \"" . $newircuser .  "\"; ";
$stmt = $db->query ($sql);
if ($stmt -> rowCount () != 0) {
    echo "Dieser Nutzername ist bereits vergeben";
}
else {
    $sql = "INSERT INTO users (user, password) VALUES (\"" . $newircuser .  "\",\"" . md5($newircuserpassword) . "\"); ";
    $db->query ($sql);
    echo "Sie sind registriert<br>";
    echo "<a href=\"./login.php\">login.php</a>";
}

$sql = "QUIT";
$db->query ($sql);

session_destroy ();
?>
Jetzt wird im letzten schritt, die aufgabe sein, die nachrichten andersherum zu zeigen von hinten nach vorne - dann - wird die Aufgabe sein - das Aussehen, der Eingabebox zum Beispiel aber auch der anderen nicht direkt zu verändern, sondern über CSS - und dann ist die Aufgabe - die
<a ..>
mit IDs zu versehen, und classes, um ihr aussehen an zu passen, über CSS.

Image Screenshot_20240913_234026

Image Screenshot_20240914_010922

Image Screenshot_20240914_011047

Image Screenshot_20240914_011054

Image Screenshot_20240914_011104

Image Screenshot_20240914_011121

Image Screenshot_20240914_023820

Image Screenshot_20240914_023836

Image Screenshot_20240914_023844

Image Screenshot_20240914_023851

Image Screenshot_20240914_024135

Ich stelle das jetzt online

https://www.ituenix.de/irc20240913/irc.php

https://www.ituenix.de/irc20240913/index.php

Hier noch mal mit Check des Benutzernames und Passworts

<?php
session_start ();
?>
<link rel="stylesheet" href="stylesheet.css">
<?php

    include ("./ircsecrets.php");
    $postingtext = htmlentities (htmlentities ($_POST ["name0007"]));

    $db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

    $sql = "USE " . $ircdbname;
    $db->query ($sql);

    $sql = "SELECT * FROM postings ORDER BY datetime DESC; ";
    $stmt = $db->query ($sql);
    echo "<table>";
    echo "<tr>";
    echo "<td> Username </td> <td> Date/Time </td> <td> Posting </td>";
    echo "</tr>";
    while ($row = $stmt -> fetch ()) {
        echo "<tr>";
        echo "<td>" . $row [0] .  "</td> <td>" . $row [1] .  "</td> <td>" . $row [2] .  "</td>";
        echo "</tr>";
    }
    echo "</table>";
?>
<link rel="stylesheet" href="stylesheet.css">

<a href="./register.php">register</a>
<a href="./login.php">login</a>
<a href="./irc.php">irc</a>
<a href="./logout.php">logout</a>
<?php
session_start ();
?>

<form method="POST" action="./irc.php">
<input type="text" name="name0007" id="id0007" class="posting0001"></input>
<input type="submit">
</form>

<div id="content"></div>

<script>
setInterval(function(){loadDoc();}, 1000);
function loadDoc() {
  const xhttp = new XMLHttpRequest();
  xhttp.onload = function() {
    document.getElementById("content").innerHTML = this.responseText;
  }
  xhttp.open("GET", "dbload.php");
  xhttp.send();
}
</script>

<?php
$postmin = 4;
$postmax = 512;

if (!isset($_SESSION ["nameircituenixde"])) {
    echo "Sie sind leider nicht eingelogged<br>";
    echo "<a href=\"./login.php\">login.php</a>";
}
else {

    include ("./ircsecrets.php");
    $postingtext = htmlentities (htmlentities ($_POST ["name0007"]));

    $db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

    $sql = "USE " . $ircdbname;
    $db->query ($sql);
    if ((strlen ($postingtext) > $postmin) && (strlen ($postingtext) < $postmax)) {
        $sql = "INSERT INTO postings (user, datetime, posting) VALUES (\"" . $_SESSION ["nameircituenixde"]  . "\",\"" . date('Y-m-d H:i:s') .  "\",\"" .   $postingtext . "\"); ";
        $db->query ($sql);
    }
    else if (strlen ($postingtext) < $postmin)
        echo "Das Postings muss groesser "  . $postmin . " Zeichen sein";
    else
        echo "Das Postings muss kleiner "  . $postmax . " Zeichen sein";
    echo "<br><a href=\"./logout.php\">logout</a>";

}

?>

<?php
session_start ();
?>

<link rel="stylesheet" href="stylesheet.css">

<form method="POST" action="./login.php">
Name: <input id="id0004" type="text" name="name0004"></input>
Passwort: <input id="id0005" type="password" name="name0005"></input>
<input id="id0006" type="submit"></input>
</form>

<?php
include ("./ircsecrets.php");
$newircuser = htmlentities ($_POST ["name0004"]);
$newircuserpassword = htmlentities ($_POST ["name0005"]);

$db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

$sql = "USE " . $ircdbname;
$db->query ($sql);

$sql = "SELECT user FROM users WHERE user = \"" . $newircuser .  "\"; ";
$stmt = $db->query ($sql);
if ($stmt -> rowCount () == 0) {
    echo "Dieser Nutzername ist nicht vorhanden";
}
else {
    $sql = "SELECT password FROM users WHERE user = \"" . $newircuser .  "\"; ";
    $stmt = $db->query ($sql);
    $row = $stmt -> fetch ();
    if (strcmp ($row [0], md5 ($newircuserpassword)) != 0) {
        echo "Falsches Passwort";
        unset ($_SESSION ["nameircituenixde"]);
    }
    else {
        $_SESSION ["nameircituenixde"] = $newircuser;
        echo "Sie sind angemeldet <br>";
        echo "<a href=\"./irc.php\">irc.php</a>";
    }
}
?>
<link rel="stylesheet" href="stylesheet.css">

<?php
session_start ();
session_destroy ();
?>

<a href="./login.php">login</a>
<?php
session_start ();
?>

<link rel="stylesheet" href="stylesheet.css">

<form method="POST" action="./register.php">
Name: <input id="id0001" type="text" name="name0001"></input>
Passwort: <input id="id0002" type="password" name="name0002"></input>
<input id="id0003" type="submit"></input>
</form>

<?php
include ("./ircsecrets.php");
$newircuser = htmlentities ($_POST ["name0001"]);
$newircuserpassword = htmlentities ($_POST ["name0002"]);

$db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

$sql = "USE " . $ircdbname;
$db->query ($sql);

$sql = "SELECT user FROM users WHERE user = \"" . $newircuser .  "\"; ";
$stmt = $db->query ($sql);
if ($stmt -> rowCount () != 0) {
    echo "Dieser Nutzername ist bereits vergeben";
}
else if ((strlen ($newircuserpassword) >= 4)  && (strlen ($newircuser) >= 4)){
    $sql = "INSERT INTO users (user, password) VALUES (\"" . $newircuser .  "\",\"" . md5($newircuserpassword) . "\"); ";
    $db->query ($sql);
    echo "Sie sind registriert<br>";
    echo "<a href=\"./login.php\">login.php</a>";
}
else {
    echo "Sowohl Password als auch Nutzername muessen mehr als 4 Zeichen aufweisen<br>";
}
?>
table {
    width: 100%;
}
tr {
    background-color: deepskyblue;
    font-family: courier;
}

body {
    background-image: url('./20230213_090925.jpg');
    background-size: 100%;
}

a:link, a:visited {
  background-color: darkblue;
  color: white;
  padding: 14px 25px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
}

a:hover, a:active {
  background-color: darkblue;
}
tr:nth-child(2n) {
    background-color: lightblue;
    font-family: courier;
}

.posting0001 {
    background-color: black;
    color: lightgreen;
    width: 100%;
    height: 128px;
}

// Und noch mal

<?php
session_start ();
?>
<link rel="stylesheet" href="stylesheet.css">
<?php

    include ("./ircsecrets.php");
    $postingtext = htmlentities (htmlentities ($_POST ["name0007"]));

    $db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

    $sql = "USE " . $ircdbname;
    $db->query ($sql);

    $sql = "SELECT * FROM postings ORDER BY datetime DESC; ";
    $stmt = $db->query ($sql);
    echo "<table>";
    echo "<tr>";
    echo "<td> Username </td> <td> Date/Time </td> <td> Posting </td>";
    echo "</tr>";
    while ($row = $stmt -> fetch ()) {
        echo "<tr>";
        echo "<td>" . $row [0] .  "</td> <td>" . $row [1] .  "</td> <td>" . $row [2] .  "</td>";
        echo "</tr>";
    }
    echo "</table>";
?>
<link rel="stylesheet" href="stylesheet.css">

<a href="./register.php">register</a>
<a href="./login.php">login</a>
<a href="./irc.php">irc</a>
<a href="./logout.php">logout</a>
<?php
session_start ();
?>

<form method="POST" action="./irc.php">
<input type="text" name="name0007" id="id0007" class="posting0001"></input>
<input type="submit">
</form>

<div id="content"></div>

<script>
setInterval(function(){loadDoc();}, 1000);
function loadDoc() {
  const xhttp = new XMLHttpRequest();
  xhttp.onload = function() {
    document.getElementById("content").innerHTML = this.responseText;
  }
  xhttp.open("GET", "dbload.php");
  xhttp.send();
}
</script>

<?php
$postmin = 4;
$postmax = 512;

if (!isset($_SESSION ["nameircituenixde"])) {
    echo "Sie sind leider nicht eingelogged<br>";
    echo "<a href=\"./login.php\">login.php</a>";
}
else {

    include ("./ircsecrets.php");
    $postingtext = htmlentities (htmlentities ($_POST ["name0007"]));

    $db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

    $sql = "USE " . $ircdbname;
    $db->query ($sql);
    if ((strlen ($postingtext) > $postmin) && (strlen ($postingtext) < $postmax)) {
        $sql = "INSERT INTO postings (user, datetime, posting) VALUES (\"" . $_SESSION ["nameircituenixde"]  . "\",\"" . date('Y-m-d H:i:s') .  "\",\"" .   $postingtext . "\"); ";
        $db->query ($sql);
    }
    else if (strlen ($postingtext) < $postmin)
        echo "Das Postings muss groesser "  . $postmin . " Zeichen sein";
    else
        echo "Das Postings muss kleiner "  . $postmax . " Zeichen sein";
    echo "<br><a href=\"./logout.php\">logout</a>";

}

?>

<?php
session_start ();
?>

<link rel="stylesheet" href="stylesheet.css">

<form method="POST" action="./login.php">
Name: <input id="id0004" type="text" name="name0004"></input>
Passwort: <input id="id0005" type="password" name="name0005"></input>
<input id="id0006" type="submit"></input>
</form>

<?php
include ("./ircsecrets.php");
$newircuser = htmlentities ($_POST ["name0004"]);
$newircuserpassword = htmlentities ($_POST ["name0005"]);

$db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

$sql = "USE " . $ircdbname;
$db->query ($sql);

$sql = "SELECT user FROM users WHERE user = \"" . $newircuser .  "\"; ";
$stmt = $db->query ($sql);
if ($stmt -> rowCount () == 0) {
    echo "Dieser Nutzername ist nicht vorhanden";
}
else {
    $sql = "SELECT password FROM users WHERE user = \"" . $newircuser .  "\"; ";
    $stmt = $db->query ($sql);
    $row = $stmt -> fetch ();
    if (strcmp ($row [0], md5 ($newircuserpassword)) != 0) {
        echo "Falsches Passwort";
        unset ($_SESSION ["nameircituenixde"]);
    }
    else {
        $_SESSION ["nameircituenixde"] = $newircuser;
        echo "Sie sind angemeldet <br>";
        echo "<a href=\"./irc.php\">irc.php</a>";
    }
}
?>
<link rel="stylesheet" href="stylesheet.css">

<?php
session_start ();
session_destroy ();
?>

<a href="./login.php">login</a>
<?php
session_start ();
?>

<link rel="stylesheet" href="stylesheet.css">

<form method="POST" action="./register.php">
Name: <input id="id0001" type="text" name="name0001"></input>
Passwort: <input id="id0002" type="password" name="name0002"></input>
<input id="id0003" type="submit"></input>
</form>

<?php
include ("./ircsecrets.php");
$newircuser = htmlentities ($_POST ["name0001"]);
$newircuserpassword = htmlentities ($_POST ["name0002"]);

$db = new PDO ("mysql: host=localhost", $ircdbusername, $ircdbpassword);

$sql = "USE " . $ircdbname;
$db->query ($sql);

$sql = "SELECT user FROM users WHERE user = \"" . $newircuser .  "\"; ";
$stmt = $db->query ($sql);
if ($stmt -> rowCount () != 0) {
    echo "Dieser Nutzername ist bereits vergeben";
}
else if ((strlen ($newircuserpassword) >= 4)  && (strlen ($newircuser) >= 4)){
    $sql = "INSERT INTO users (user, password) VALUES (\"" . $newircuser .  "\",\"" . md5($newircuserpassword) . "\"); ";
    $db->query ($sql);
    echo "Sie sind registriert<br>";
    echo "<a href=\"./login.php\">login.php</a>";
}
else {
    echo "Sowohl Password als auch Nutzername muessen mehr als 4 Zeichen aufweisen<br>";
}
?>
table {
    width: 100%;
}
tr {
    background-color: deepskyblue;
    font-family: courier;
}

body {
    background-image: url('./20230213_090925.jpg');
    background-size: 100%;
}

a:link, a:visited {
  background-color: darkblue;
  color: white;
  padding: 14px 25px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
}

a:hover, a:active {
  background-color: darkblue;
}
tr:nth-child(2n) {
    background-color: lightblue;
    font-family: courier;
}

.posting0001 {
    background-color: black;
    color: lightgreen;
    width: 100%;
    height: 128px;
}

Ich erneuere heute alle Passwörter und weil die Regeln immer noch zu einfach zu erraten waren, obwohl sie kompliziert waren, wie ich meine Passwörter erstellt habe nämlich der Lesbarkeit halber änder ich diese Regel ab und meine Passwörter werden noch extrem komplizierter ich änder heute alle Passwörter. Jetzt mache ich mir gerade was zu essen. Ich geh nachher erst in die Stadt und dann beginne ich mal damit. Ich werde sie komplett sämtlich austauschen und nicht auf dem Smartphone benutzen, soweit es geht.

// So, sieht mein neuer Password Generator aus:

#include <stdio.h>
#include <stdlib.h>

int main (void) {

    int i, j;
    int seed;
    int ch [4];
    char specialchar [] = {'!', '@', '#', '$', '%', '&', '*', '(', ')', '+', '=', '?'};

    printf ("Seed: ");
    scanf ("%i", &seed);
    srand((unsigned) seed);
    printf ("%i\n", seed);


    for (j = 0;  j < 8;   j++) {
        printf ("\n                                          :");
        for (i = 0;  i < ((rand () % 6) + 12);  i++) {
            ch [0] = (rand ()%26) + 'a';
            ch [1] = (rand ()%26) + 'A';
            ch [2] = (rand ()%10) + '0';
            ch [3] = specialchar [rand ()%12];
            printf ("%c", ch [rand () % 4]);
        }
    }
return 0;
}

Erzeugt Passwoerter der Form

ich habe extra als seed kein Time Genommen, weil, sonst leicht Rückschlüsse erstellt werden können. Stattdessen ist das Ziel, den Seed mit Würfeln zu erwürfeln

Ich habe vorne Platz gelassen, damit ich Namen für Passwörter rein schreiben kann.

Seed: 1

                                          :&#6H(&JbcYK!
                                          :)ph95J1bRT?&w8f
                                          :w$%ZXT3c)W9@c816
                                          :qoYl%0g!%2(rda
                                          :290!ahL9o8T4GPu
                                          :68+l?d@M?Ui17B
                                          :69V*CXiK&+Rp
                                          :391V(4=8E$$&#A

Trotzdem finde ich die Idee mit dem Seed so beschissen, weil es werden halt nicht mehr als

INT_MAX
Passwörter - anders als uns die Zeichen suggerieren, wenn man den Algorithmus hat. Man könnte sich entweder seed jedes Mal neu laden. Oder man könnte sie mit einer bestehenden Variante von SSL verschlüsseln und einfach die Verschlüsselte Version nehmen.

Das wäre überhaupt eine Idee - man nimmt SSL zur Verschlüsselung eines Textes für das SSL. Für das SSL nimmt man eben dieses Passwort - wie ich sie gerade sagte - dann erzeugt man ein lesbaren aber Darstellbaren Verschlüsselten Text, aus einem bestehenden.

Man schreibt ein Programm, was das zerlegt und nimmt die jeweils als Passwörter, das mache ich mal

So, mein Programm zum erstellen sicherer passwoerter hat schon fortschritte gemacht.

Zunaechst verschluessele ich eine Datei mit gpg

david@work:~$ gpg --gen-key
david@work:~$ datei=fname.txt
david@work:~$ gpg --encrypt -a --recipient david@ituenix.de $datei
david@work:~$ cat "$datei.tex.asc"

So, im naechsten Schritt zerlege ich die Datei in Passwoerter unterschiedlicher Laenge.

// Ich aendere jetzt alle meine Passwoerter.

// so, ich habe das programm geschrieben, es wird aufgerufen mit
// cat file | ./password

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

int main (void) {
    time_t t;
    int i, j;
    int ch;

    srand ((unsigned)time (&t));

    i = 0;
    j = i + (rand () % 6) + 12;
    printf ("\npassword:\t\t");
    while ((ch = getchar ()) != EOF) {
        if (ch != '\n')
            putchar (ch);
        if (i == j) {
            j = i + (rand () % 6) + 12;
            printf ("\npassword:\t\t");
        }
        i++;
    }
return 0;
}