Diverse Tipps unter Windows 10 bzw. Windows 11 getestet!

Diese Seite ist eine chronologische Zusammenfassung von Tipps, die ich ganz ohne KI im Laufe dieses Jahres kreierte:

Inhaltsverzeichnis

Batch mit integrierten VB-Script zur Zählung von beliebigen Dateien
ZIP-Datei in der Batch mit powershell einbinden (nur bordeigene Mittel ! ZIP von Microsoft, Powershell)
Kubikwurzel aus Zahl in VBS (Ausgabe des Ergebnis in Textdokument und somit prima mit batch koppelbar)
Dateien zählen und ausführbaren link zur Datei (jeder gezählten Datei in Edge oder Internetexplorer anzeigen lassen )
One-Time-PAD ist nicht Caesar (Quellcode für Verschlüsselungsprogramm auf HTML- Seite mit Javascript, funktioniert Offline unter jeden Browser - natürlich unknackbar :))
Newsletter mit Anzeige eines Textes pro Tag erstellen (Javascript-Grundgerüst - klein und schnell realisierbar)
-------
13.02.2023 Batch mit integrierten VB-Script zur Zählung von beliebigen Dateien

Ich kam heute in die Verlegenheit meine HTML-Seiten zählen zu wollen, aber nach langer Suche im Internet fand ich eine grundlegende Zeile, die ich zum Aufbau der folgenden Batch
benutzte (Quelle), die ich im Schnelldurchlauf erkläre:

Textdokument in Ordner erstellen, folgenden farbigen Text hineinkopieren und Speichern. Dann das neue Textdokument in irgendeinName.bat umändern(darauf achten, dass das Anzeigen von Dateiendungen aktiviert ist, sonst wird der Dateityp nicht von *.txt zu *.bat bzw. Batch):

set destination=%~dp0%
>"%destination%suchw.vbs"  ECHO ZielDatei = "suchbegriff.txt"
 >>"%destination%suchw.vbs"  ECHO username=InputBox ("Geben sie eine Dateiendung zur Suche im Unter- und Ordner ein wie pdf oderhtml...alle Endungen sind erfolgreich")
 >>"%destination%suchw.vbs"  ECHO CreateObject("Scripting.FileSystemObject").CreateTextFile(ZielDatei, True).WriteLine username

 start /wait suchw.vbs
set /p Suche=<suchbegriff.txt

set destination=%~dp0%
dir "%destination%\*.%Suche%" /b/s |find /v /c "::" > "%destination%/zzwei.txt"
timeout /T 5

set /p erg=<zzwei.txt

echo Es gibt %erg% %Suche% Dateien in Deinen Ordnern und Unterordnern >%destination%/resultat.txt


del suchw.vbs
del suchbegriff.txt
del zzwei.txt

 Die Batch sollte im obersten Ordner des Zielverzeichniss liegen, der Pfad wird mit der ersten Zeile der Batch gefunden: Achtung: Die Batch muss im obersten Ordner liegen und darf nicht auf z. B. Laufwerk A:, B: oder F: liegen. Sie funktioniert sonst nicht. Das sind keine Ordner oder Verzeichnisse, die mit
%~dp0%  erfasst werden können!!!

Beim öffnen der Batch wird nach der Dateiendung gefragt: kein Punkt oder Stern eingeben.

Diese Nachfrage resultiert aus dem kurzfristig erstellten VB-Script, welches eine bequeme Eingabe erfordert. VB muss dafür aktiviert sein. Geben sie nun die Dateiendung wie pdf, html, png, docx, mp3, mp4  oder wie auch immer ein.Was sie eben suchen.

Danach erledigt die Batch oder besser gesagt die Zeile
dir "%destination%\*.%Suche%" /b/s |find /v /c "::" > "%destination%/zzwei.txt"  die eigentliche Arbeit.

Dabei handelt es sich um einen dir Befehl, die Variable destination beinhatet den Pfad (
%~dp0%).

%Suche% ist die Variable ihres Suchbegriffes. Die letzten zwei Variablen tragen Fantasienamen (bis auf %~dp0%, welches eine vorgeschriebene für den Ort ist).
Dann gibt es einen
timeout /T 5 von 5 Sekunden (T steht für 5 Sekunden, solltest Du eine höhere Zeit wie 10 Sekunden wählen), weil bei größeren Mengen von Dateien die cmd einen Momment braucht und Das Skript sonst zu schnell durchläuft: Folge: Es kommt eine Nul raus.

Am Ende kommen zwei Variablen heraus:  
%erg% ist die Ergebniszahl und %Suche% für den Dateityp, den Du zuvor eigegeben hast.

(Die musst Du ersetzen, wenn Du die Zeile singulär manuell eingeben willst: dir "pfad\*.dateindung" /b/s |find /v /c "::" > "ausgabepfad/resultat.txt" Bei der manuellen Eingabe in die CMD daran denken, dass sich Variablenzeichen %% verdoppeln.)

In der Textdatei Resultat.txt steht das Ergebnis.

Haut die Zahl nicht hin, dann erhöhe den Timeout. Starte die Batch erneut.

1500 Dateien in einer Homepage, bestehend aus HTML wurden im Zeitraum locker geschaftt.

Ach ja, es werden Zwischendokumente erstellt, die werden mit den letzten drei Zeilen gelöscht!!! Also sollten keine Textdateien mit diesem Namen bestehen.
Ansonsten ist die Batch harmlos, aber ich übernehme dafür keine Garantie, das Probieren des Codes auf eigene Gefahr (sorry, aber dieser Satz muss sein.)

Ach ja, ich kann für Leute, die schnell in Webseiten suchen wollen (htm oder html) meine batch cassandra empfehlen.


----


28.02.2023 ZIP-Datei in der Batch mit powershell einbinden (nur bordeigene Mittel ! ZIP von Microsoft, Powershell)

Administratoren möchten vielleicht ZIP-Dateien mit einer Batch erstellen

dieser Kleine Code macht es möglich:

powershell -EP ByPass "Compress-Archive *.docx irgendeinnahme.zip" , will man mehre *.docx Dateien verpacken (relativ von der Batch, sonst Pfade anpassen). Besser ist es vielleicht, wenn man den Befehl start wait einfügt: start /wait powershell -EP ByPass "Compress-Archive *.docx irgendeinnahme.zip". Dieses  ermöglicht eine Weiterbearbeitung mit der cmd nach dem fertigen Packvorgang, wenn Sie z. B. das Archiv mit der Batch verschieben wollen.
- noexit - C einfügen, also in der Art
powershell -EP ByPass
- noexit - C "Compress-Archive *.docx irgendeinnahme.zip"

Zum Entpacken nehmen wir den Code:
powershell -EP ByPass "Expand-Archive -Path .\docx.zip -irgendein Pfad .\temp Dateien extrahieren"

Zum Hinzufügen und überschreiben kann man die Parameter -Update und -force verweden:

powershell -EP ByPass "Compress-Archive -update *.pdf namedesArchiv.zip"
 
Zählen kann man die Dateien leider nicht - da bleibt nur auspacken - Liste erstellen und wieder einpacken.... Eine Batch zum Zählen schrieb ich bereits:


dir "Pfadzu Dateien\*.docx" /b/s |find /v /c "::" > "destinationspfad/resultat.txt" Danach sollte man ein timeout von 5 Sekunden setzen, wenn man weiterarbeiten will...

Im resutat.txt stehen dann die Anzahl der Dateien. Die orangen Felder Müssen Sie ergänzen!

Mal den Text einer Batch, die in einem Ordner und dessen Unterordnern alle Textdokumente zählt und einen Archivordner mit allen Textdokumente des Ordners enthält: irgendeiname.bat
Batch mit folgendem Inhalt:

 set destination=%~dp0%
>"%destination%links.bat"  ECHO dir "%%destination%%\*.txt" /b/s ^|find /v /c "::" ^> "%%destination%%/resultat.txt"
>>"%destination%links.bat"  ECHO exit
start /wait links.bat
start /wait powershell -EP ByPass "Compress-Archive *.txt irgendeinnahme.zip"
exit


Die erste Zeile legt den Dateipfad als Variable destination fest - jeder andere Name für destination ist zulässig. Sollte man immer am Anfang einer Batch machen: Jeder noch so unmögliche Pfad mit Leerzeichen und ü.ä usx. wird cmd-gerecht erkannt.

Danach bauen wir uns eine weitere Batch namens links.bat, in der zwei Befehle stehen: einmal eine Dateizählung in einem resultat.txt und dann ein exit -Befehl (der muss sein, sonst bleibt das Fenster der Konsole offen). Danach warten wir auf die Ausführung der Textzählung - auch wenn die länger dauern sollte. Danach starten wir die Powershell. Am Ende gibt es ein exit für die Hauptbatch, davor sind andere Befele möglich.

Ach ja, ich benutzte eine zweite Batch. Die erste Zeile wird mit einem >-Zeichen eingeleitet, folgende Zeilen mit zwei >, da die nächsten Zeilen hinzugefügt werden: Später muss man noch darauf achten, dass bei dem Echo-Befehl Zeichen wie > mit einem 
^ Zeichen escaped werden (als lesbarer Text ausgegeben werden und nicht als Befehl ausgeführt werden). Genauso wird ein %-Zeichen  doppelt  (%% ) escaped.

Im Ordner sollten vielleicht mehrere Textsokumente liegen, weil ja sonst nur ein Textdokument gezählt wird.

Schauen sie sich doch die links.bat an
Mit einem del Befehl kann man dann auch die links.bat wieder löschen. Ich liess alles so, wie es ist.

Diese Batch ist nicht unbedingt günstig, aber demonstriert mehrere Möglichkeiten der Batch in Verbindung mit Powerscript.

Fazit: Sie können mit der Hilfe von Powershell auch aus der CMD heraus für die cmd sinnvolle Funktionen ergänzen. Nach dem o. a. Schema können sie genauso *.ps1-Dateien statt eine neue Batch erstellen (achten sie auf das Escapen!). 


Quelle: Administrator.de und windows pro.de


-----

12.03.2023 Schrieb Kubikwurzel aus Zahl in VBS



Ich hatte gerade ein Script zur Feststellung der Kubikwurzel erstellt:

irgendeinname.vbs

Dim kubikw
kubikw=InputBox ("Tragen sie die Zahl mit einer Kommazahl ein!!!")
Rechnung = kubikw^(1/3)
ergebnis = Rechnung
ZielDatei = "Ergebnis.txt"
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZielDatei, True).WriteLine ergebnis

Sieht einfach aus, aber kostete einen riesigen Aufwand. Schrieb dazu einen Artikel.



----
19.03.2023 Willkommen in der Neuzeit...(Dateien zählen und ausführbaren link in Edge oder Internetexplorer anzeigen lassen GEHT NICHT MIT CHROME, FIREFOX ODER OPERA

..., da ich scheinbar aus der Steinzeit komme! Jedenfalls zog ich bzw. meine Webseite, wie am 18.03.2023 beschrieben, von 1und1 zu Ionos um, da ich bei 1und1 kein SSL-Zetifikat bekommen konnte (ionos ist quasi 1un1).

Der Umzug ging am Samstag sehr schnell (innerhalb einer halben Stunde war alles zufriedenstellend geregelt). Ionos hat automatisch ein Zertifikat! Toll!
Bei der Implementierung des Zertifikats scheinen aber Fehler aufgetreten zu sein, die ich mit einer .htacces und Redirect 301 behob. Vorsicht für alle Menschen mit einer reinen HTML-Homepage: Hier ist auch die Unterstützung eher mau, weil die auf Contentmanagementsysteme setzen.
Warum die .htaccess? Weil ansonsten alte Links, die auf Http gesetzt wurden oder bei der Browsereingabe mit nur Namen das Zertifikat  umgangen wird und es sonst bei einer unsicheren Seite bleibt!

Auf die Idee mit dieser Datei kam ich selbst.
 
Danach kommt das Link-Anpassen und ohne Notepad 2+ wäre ich ganz schün verloren. Mit Notepad 2+ > search > replace (Registerkarte find in files) kann man Ordnerhierarchien durchforsten und ich musste viele feste Links (Tipboxen in Frames, Javascript in Anwendungen für die Tarotseite anpassen). Gerade Javascript wird bei verweisen auf unsichere htpp-Seiten deaktiviert!

Bei 1535 HTML und 234 HTM-Seiten auf dieser Website ganz schön viel Arbeit. Dann kommen noch sehr viele Textdateien in Batches, PDF-Dateien und Bilddateien dazu.

Die Seiten zählte ich mit einer selbst geschrieben Batch, die nebenbei das Resultat mit Links zur Datei herausgibt und die Dateigröße anzeigt (Irgendeinname.bat)

set /p extension= enter the extension without a dot!
set destination=%~dp0%
chcp 28591 > NUL
for /f "delims=" %%i in ('dir "%destination%*.%extension%" /s /b /a-d') do @echo %%~zi^:%%~ni^:%%i >>result.log
>"%destination%new.htm"  ECHO ^<html^>
>>"%destination%new.htm" ECHO ^<head^>
>>"%destination%new.htm" ECHO ^<style type="text/css"^>
>>"%destination%new.htm" ECHO a {color:#FFFF33; font-size:10pt; font-family:verdana,sans-serif,tahoma; text-decoration:none}
>>"%destination%new.htm" ECHO a:hover {color:#FF0000; font-size:10pt; font-family:verdana,sans-serif,tahoma; text-decoration:none}
>>"%destination%new.htm" ECHO a.menu1 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma; font-size:8pt; text-decoration:none}
>>"%destination%new.htm" ECHO a.menu1:hover {color:#FF0000; font-family:verdana,sans-serif,tahoma; font-size:8pt; text-decoration:none}
>>"%destination%new.htm" ECHO a.menu2 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma; font-size:9pt; text-decoration:none}
>>"%destination%new.htm" ECHO a.menu2:hover {color:#FF0000; font-family:verdana,sans-serif,tahoma; font-size:9pt; text-decoration:none}
>>"%destination%new.htm" ECHO ^</style^>
>>"%destination%new.htm" ECHO ^</head^>
>>"%destination%new.htm" ECHO ^<body style="color: white; background-color: black;" alink="red"
>>"%destination%new.htm" ECHO link="yellow" vlink="#3333ff"^>
chcp 28591 > NUL
for /F "delims=: tokens=1,2,3*" %%i in (result.log) do nothing >>new_%%i.log & >>"new_%%i.log" Echo ^<p class=MsoNormal^>^<span lang=EN style='font-weight:normal'^>^<a href="%%k:%%l"^>filename %%j size %%i^</a^>^</span^>^</p^>
copy new_*.log result.log
copy new.htm + result.log result.htm
del *.log
del new.htm
find result.htm /c /v "">>"%destination%result.htm"
>>"%destination%result.htm" ECHO ^</body^>
>>"%destination%result.htm" ECHO ^</html^>

Sie geben beim Ausführen die Dateiendung ohne Punkt ein. Die Batch durchforstet dann das Verzeichnis und die Unterordner. Das ganze wird in einer result.htm ausgegeben. Vorsicht Log-Dateien im Verzeichnis der Batch werden gelöscht.



----


07.04.2023 One-Time-PAD ist nicht Caesar....

Jahrelang frönte der Autor dieser Webseite dem Hobby einen unknackbaren Code zur Verschlüsselung zu kreieren. Dabei musste der Autor dieser Webseite feststellen, dass man "das Rad nicht neu erfinden kann".

Die folgende Geschichte ist dabei ungelogen: Ich kreierte nach vielen Versuchen eine "neue Verschlüsselung" in Javascript, bei der Ein Text durch einen überllagernden Text Buchstabengetreu um einen Zahlenwert (resutltierend aus einem Zahlenwert aus dem Überlagerungstext) pro Buchstaben verschiebt.

Diese Methode ist unknackbar bei Beachtung, dass der User wirklich einen Schlüsseltext verwendet, der genauso lang ist wie der zu verschlüssende Text.

Einige werden jetzt sagen: Das kommt mir aber bekannt vor und die dazugehörige Methode heißt OTP oder One Time Pad - schauen Sie sich das empfehlenswerte Video auf You Tube an:




Dieses Video wurde nach den Regeln von You Tube eingebunden, Ursprungslink., One Time PAD - Texte unknackbar verschlüsseln

Diese Verschlüsselungsmethode war mir unbekannt: Mein Wissen auf dieser Webseite hört bei  Caesar und dem Rot 13-Verfahren auf.  Die Weiterentwicklung von Herrn Vigenere und One Time PAD waren mir nicht bekannt.

Also im folgenden ein lauffähiger Javascript-Code, implementiert in einer HTML-Seite basierend auf One Time PAD und dieser ist bei richtiger Verwendung unknackbar!

Nachtrag am selben Tag: Nach einer weiteren Recherche stellte sich heraus, dass meine Verschlüsselung eine Variante vom Code im o. a. Film von Vigenere und One Time Pad ist: Bei mir kommen andere Werte im Text heraus, weil ich mit anderen Werten als in den üblichen Tabellen arbeite. Es gibt keine Blöcke und Leerzeichen, sowie andere Zeichen werden unterschiedlich behandelt. Ich halte das für nicht schlechter und sie können das gerne in der Demo nachprüfen.

Name der Datei: irgendeinname.html

Code in blau in ein Textdokument hineinkopieren. Dann speichern im UTF-8Code statt Ansi-Format und dann in HTML umformatieren- also von irgendeinname.txt in irgendeinname.html (Das ist wichtig, weil sonst Browser mit ü, ä und Sonderzeichen nicht zurechtkommen und es dann zu einem Ausfall der Anwendung per se kommt)!!!:

<html>
  <head>
 <meta content="text/html; charset=UTF-8" http-equiv="content-type">
    <title>Codierung und Decodierung mit One Time PAD</title>
    <meta name="author" content="Sternenhimmelstuermer">
    <meta name="description" content="NoNSA Codieren Decodieren">
 <style type="text/css">a {color:#FFFF33; font-size:10pt; font-family:verdana,sans-serif,tahoma; text-decoration:none}
a:hover {color:#FF0000; font-size:10pt; font-family:verdana,sans-serif,tahoma; text-decoration:none}
a.menu1 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma; font-size:8pt; text-decoration:none}
a.menu1:hover {color:#FF0000; font-family:verdana,sans-serif,tahoma; font-size:8pt; text-decoration:none}
a.menu2 {color:#FFFFFF; font-family:verdana,sans-serif,tahoma; font-size:9pt; text-decoration:none}
a.menu2:hover {color:#FF0000; font-family:verdana,sans-serif,tahoma; font-size:9pt; text-decoration:none}
  </style>
 
     
   
    <SCRIPT LANGUAGE="JavaScript"><!--


function allnow(){
bereinigung();
 enc13();
 }
 
 
function allrenow(){
  dec13();
 
rebereinigung();
          }

function bereinigung() {
var bereinigung=document.changeForm.dialog.value;
var bereinigung1= bereinigung.replace(/Ü/g, "UE");
var bereinigung2= bereinigung1.replace(/ü/g, "uE");
var bereinigung3= bereinigung2.replace(/Ä/g, "AE");
var bereinigung4= bereinigung3.replace(/ä/g, "aE");
var bereinigung5= bereinigung4.replace(/Ö/g, "OE");
var bereinigung6= bereinigung5.replace(/ö/g, "oE");
var bereinigung7= bereinigung6.replace(/ß/g, "zs");
var bereinigung8= bereinigung7.replace(/\&/g, "kL");
var bereinigung9= bereinigung8.replace(/;/g, "sE");
var bereinigung10= bereinigung9.replace(/@/g, "tTt");

 
document.changeForm.dialog.value = bereinigung10

}
 
function rebereinigung() {
var rebereinigung=document.changeForm.dialog.value;
var rebereinigung1= rebereinigung.replace(/UE/g, "Ü");
var rebereinigung2= rebereinigung1.replace(/uE/g, "ü");
var rebereinigung3= rebereinigung2.replace(/AE/g, "Ä");
var rebereinigung4= rebereinigung3.replace(/aE/g, "ä");
var rebereinigung5= rebereinigung4.replace(/OE/g, "Ö");
var rebereinigung6= rebereinigung5.replace(/oE/g, "ö");
var rebereinigung7= rebereinigung6.replace(/zs/g, "ß");
var rebereinigung8= rebereinigung7.replace(/kL/g, "\^&");
var rebereinigung9= rebereinigung8.replace(/sE/g, ";");
var rebereinigung10= rebereinigung9.replace(/tTt/g, "@");
document.changeForm.dialog.value = rebereinigung10

}







function enc13() {


pwssatz=document.changeForm.pass.value;
satz = document.changeForm.dialog.value;
anton=pwssatz;

  while (pwssatz.length < satz.length) {
  pwssatz+= anton
    }

neuersatz = "";
versatz = "";

for (ilx=0; ilx<satz.length; ilx++)
{
  passw = eval("pwssatz.charAt(" +ilx+")");

  if (versatz == "") versatz = 39;
  if (passw == "a") versatz = 1;
  if (passw == "b") versatz = 2;
  if (passw == "c") versatz = 3;
  if (passw == "d") versatz = 4;
  if (passw == "e") versatz = 5;
  if (passw == "f") versatz = 6;
  if (passw == "g") versatz = 7;
  if (passw == "h") versatz = 8;
  if (passw == "i") versatz = 9;
  if (passw == "j") versatz = 10;
  if (passw == "k") versatz = 11;
  if (passw == "l") versatz = 12;
  if (passw == "m") versatz = 13;
  if (passw == "n") versatz = 14;
  if (passw == "o") versatz = 15;
  if (passw == "p") versatz = 16;
  if (passw == "q") versatz = 17;
  if (passw == "r") versatz = 18;
  if (passw == "s") versatz = 19;
  if (passw == "t") versatz = 20;
  if (passw == "u") versatz = 21;
  if (passw == "v") versatz = 22;
  if (passw == "w") versatz = 23;
  if (passw == "x") versatz = 24;
  if (passw == "y") versatz = 25;
  if (passw == "z") versatz = 26;
  if (passw == "0") versatz = 27;
  if (passw == "1") versatz = 28;
  if (passw == "2") versatz = 29;
  if (passw == "3") versatz = 30;
  if (passw == "4") versatz = 31;
  if (passw == "5") versatz = 32;
  if (passw == "6") versatz = 33;
  if (passw == "7") versatz = 34;
  if (passw == "8") versatz = 35;
  if (passw == "9") versatz = 36;
  if (passw == ".") versatz = 37;
  if (passw == "(") versatz = 38;

  if (passw == "A") versatz = -1;
  if (passw == "B") versatz = -2;
  if (passw == "C") versatz = -3;
  if (passw == "D") versatz = -4;
  if (passw == "E") versatz = -5;
  if (passw == "F") versatz = -6;
  if (passw == "G") versatz = -7;
  if (passw == "H") versatz = -8;
  if (passw == "I") versatz = -9;
  if (passw == "J") versatz = -10;
  if (passw == "K") versatz = -11;
  if (passw == "L") versatz = -12;
  if (passw == "M") versatz = -13;
  if (passw == "N") versatz = -14;
  if (passw == "O") versatz = -15;
  if (passw == "P") versatz = -16;
  if (passw == "Q") versatz = -17;
  if (passw == "R") versatz = -18;
  if (passw == "S") versatz = -19;
  if (passw == "T") versatz = -20;
  if (passw == "U") versatz = -21;
  if (passw == "V") versatz = -22;
  if (passw == "W") versatz = -23;
  if (passw == "X") versatz = -24;
  if (passw == "Y") versatz = -25;
  if (passw == "Z") versatz = -26;
  if (passw == " ") versatz = -27;
  if (passw == ")") versatz = -28;
  if (passw == ",") versatz = -29;
  if (passw == "?") versatz = -30;
  if (passw == "\"") versatz = -31;
  if (passw == "/") versatz = -32;
  if (passw == "+") versatz = -33;
  if (passw == "-") versatz = -34;
  if (passw == "=") versatz = -35;
  if (passw == "^:") versatz = -36;
  if (passw == "!") versatz = -37;
  if (passw == "§") versatz = -38;

  nr = satz.charCodeAt(ilx);
  if (31<nr && nr<123)
    {
    nnr = nr + versatz;
    versatz = "";
    if (nnr>122) nnr = 31 + (nnr-122);
    if (nnr<32)  nnr =  122 - (31 - nnr);
    neuersatz += String.fromCharCode(nnr);
    }
  else neuersatz += satz[ilx];
 }
document.changeForm.dialog.value = neuersatz;
}


function dec13()
{
spwssatz=document.changeForm.pass.value;
spatz = document.changeForm.dialog.value;
kanton=spwssatz;
  while (spwssatz.length < spatz.length) {
  spwssatz+= kanton
 }

neuerspatz = "";
verspatz = "";
for (pilx=0; pilx<spatz.length; pilx++)
  {
  spassw = eval("spwssatz.charAt(" +pilx+")");
  if (verspatz == "") verspatz = -39;
  if (spassw == "a") verspatz = -1;
  if (spassw == "b") verspatz = -2;
  if (spassw == "c") verspatz = -3;
  if (spassw == "d") verspatz = -4;
  if (spassw == "e") verspatz = -5;
  if (spassw == "f") verspatz = -6;
  if (spassw == "g") verspatz = -7;
  if (spassw == "h") verspatz = -8;
  if (spassw == "i") verspatz = -9;
  if (spassw == "j") verspatz = -10;
  if (spassw == "k") verspatz = -11;
  if (spassw == "l") verspatz = -12;
  if (spassw == "m") verspatz = -13;
  if (spassw == "n") verspatz = -14;
  if (spassw == "o") verspatz = -15;
  if (spassw == "p") verspatz = -16;
  if (spassw == "q") verspatz = -17;
  if (spassw == "r") verspatz = -18;
  if (spassw == "s") verspatz = -19;
  if (spassw == "t") verspatz = -20;
  if (spassw == "u") verspatz = -21;
  if (spassw == "v") verspatz = -22;
  if (spassw == "w") verspatz = -23;
  if (spassw == "x") verspatz = -24;
  if (spassw == "y") verspatz = -25;
  if (spassw == "z") verspatz = -26;
  if (spassw == "0") verspatz = -27;
  if (spassw == "1") verspatz = -28;
  if (spassw == "2") verspatz = -29;
  if (spassw == "3") verspatz = -30;
  if (spassw == "4") verspatz = -31;
  if (spassw == "5") verspatz = -32;
  if (spassw == "6") verspatz = -33;
  if (spassw == "7") verspatz = -34;
  if (spassw == "8") verspatz = -35;
  if (spassw == "9") verspatz = -36;
  if (spassw == ".") verspatz = -37;
  if (spassw == "(") verspatz = -38;

  if (spassw == "A") verspatz = 1;
  if (spassw == "B") verspatz = 2;
  if (spassw == "C") verspatz = 3;
  if (spassw == "D") verspatz = 4;
  if (spassw == "E") verspatz = 5;
  if (spassw == "F") verspatz = 6;
  if (spassw == "G") verspatz = 7;
  if (spassw == "H") verspatz = 8;
  if (spassw == "I") verspatz = 9;
  if (spassw == "J") verspatz = 10;
  if (spassw == "K") verspatz = 11;
  if (spassw == "L") verspatz = 12;
  if (spassw == "M") verspatz = 13;
  if (spassw == "N") verspatz = 14;
  if (spassw == "O") verspatz = 15;
  if (spassw == "P") verspatz = 16;
  if (spassw == "Q") verspatz = 17;
  if (spassw == "R") verspatz = 18;
  if (spassw == "S") verspatz = 19;
  if (spassw == "T") verspatz = 20;
  if (spassw == "U") verspatz = 21;
  if (spassw == "V") verspatz = 22;
  if (spassw == "W") verspatz = 23;
  if (spassw == "X") verspatz = 24;
  if (spassw == "Y") verspatz = 25;
  if (spassw == "Z") verspatz = 26;
  if (spassw == " ") verspatz = 27;
  if (spassw == ")") verspatz = 28;
  if (spassw == ",") verspatz = 29;
  if (spassw == "?") verspatz = 30;
  if (spassw == "\"") verspatz = 31;
  if (spassw == "/") verspatz = 32;
  if (spassw == "+") verspatz = 33;
  if (spassw == "-") verspatz = 34;
  if (spassw == "=") verspatz = 35;
  if (spassw == "^:") verspatz = 36;
  if (spassw == "!") verspatz = 37;
  if (spassw == "§") verspatz = 38;

  wnr = spatz.charCodeAt(pilx);

  if (31<wnr && wnr<123)
    {
    wnnr = wnr + verspatz;
    verspatz = "";
    if (wnnr>122) wnnr = 31 + (wnnr-122);
    if (wnnr<32)  wnnr =  122 - (31 - wnnr);
    neuerspatz += String.fromCharCode(wnnr);
    }
  else neuerspatz += spatz[pilx];
  }
document.changeForm.dialog.value = neuerspatz;
}

function enc15() {
var mpwstz="satzeinfght";

var change1 = new Array();
change1[0] = new Array("Tab0","Tab1","Tab2","Tab3","Tab4","Tab5","Tab6","Tab7","Tab8","Tab9","Tab10","Tab11","Tab12","Tab13");
change1[1] = new Array("8","p","J","o","d"," ","L","+"," ","q","x","l","J",":");
change1[2] = new Array("?","q","Z","V","n","6","z",".","f","B","8","t","L","E");
change1[3] = new Array("1","0","u","e","x","Y","S","5","y","s","u","w","T","g");
change1[4] = new Array("D","o","x","3","2","e","c","l","i","o","§"," ","P","y");
change1[5] = new Array("I","P","I","R","+","z","=","0","n","f","P","h","?","m");
change1[6] = new Array("W","(","M","§","k","p","k","s","0","v","S","Y","h","§");
change1[7] = new Array("w","\"","s","c","o","q","d","w","L","z","s","Q","d","L");
change1[8] = new Array("y","F","0","z","-","U","j","/","G","?","E","s","j","8");
change1[9] = new Array("(","w","5","6","S","4","q","U","d","L","W","z","I","9");
change1[10] = new Array(" ",":","A","T",")","H","(","(","s","C","R","N","U","R");
change1[11] = new Array("V","f","4","S","§",",","4","?","B","p","T","B","y","e");
change1[12] = new Array("d","x","1","\"","j","t","D","o","7","h","D",".","-","(");
change1[13] = new Array("n","t","d","1","U","y","G","y","N","E","f","e","(","s");
change1[14] = new Array("A",".",",","P","a","1","W","x","\"","4","2","\"","M","2");
change1[15] = new Array("3","Y","m","0","O","2","!","4","m","k","t",":","=","b");
change1[16] = new Array("4","8","y","u","z","\"","/","j",".","\""," ","p"," ","?");
change1[17] = new Array("\"","u","R"," ","b","!","E","Y","p","S","j","=","r","A");
change1[18] = new Array("E","D","3","Y","B","A","3","E","c","5","h","i",":","q");
change1[19] = new Array(")","C","§","t","0","9","2","J",",","1",",","a","p","I");
change1[20] = new Array("7","U","f","=","3","X","l","!","b","9","B","2","!","u");
change1[21] = new Array("z","?","k","p","5","w","T","3","o","D","i","3","m","!");
change1[22] = new Array("e","g","-","-","f","K","O","q","2","6","U","V","u","X");
change1[23] = new Array(".","X","=","a","F","x","N","=",":","V","M","8","A","Y");
change1[24] = new Array("!","T","v","2",":","k","m","K","t","T","Y","o","R","P");
change1[25] = new Array("6","A","H","v","c","j","1","n","C","m","c",",","E","o");
change1[26] = new Array(",","B","+","U","V","m","A",")","P",",","a","m","V","=");
change1[27] = new Array("g","i","o","!","r","R","M","P","3","a",":","c","f","/");
change1[28] = new Array(":","6","6","s",",","+","o",",","/","3","H","v","D","c");
change1[29] = new Array("N","R","q","A","l","O","a","F","K","g","0","A","+","H");
change1[30] = new Array("k","G","w","m","A","N","5","u","a","M","w","!",")","z");
change1[31] = new Array("u","s",")","n","i","C","6","D","§","r","b","d","4","V");
change1[32] = new Array("a","-","t","?","?","(","I","R","1","2","F","I","b","l");
change1[33] = new Array("b",",","l","E","u","=","e","S","6","n","p","j","o","G");
change1[34] = new Array("/","a","g","M","Q","v"," ","B","W","d","k","(","e","U");
change1[35] = new Array("C","e","B",".","Y","u","p",":","r","O","X","+","k","x");
change1[36] = new Array("§","I","!","l","R","5","s","v","I"," ","9","k","\"","J");
change1[37] = new Array("P","7","O","5","q","o","R","e","-","i","(","L","8","i");
change1[38] = new Array("+","l","2","O","(","F","w","G","9","c","q","W","G","w");
change1[39] = new Array("s","!","T",":","W","S","+","\"","l","Y","3","r","1","1");
change1[40] = new Array("R","5","n","C","C","-","Y","A","Z","P","C","Z","c","C");
change1[41] = new Array("H","V","N","g","K","d","U","i","v","Z","r","D","F","N");
change1[42] = new Array("p","N",".","h","m",".","H","9","X","W","!","O","N","n");
change1[43] = new Array("Q"," ","D","k","!","8","0","§","O","X","o",")","W","O");
change1[44] = new Array("x","4","(","G","J","Z","Q","C","M","t","+","X","9","Q");
change1[45] = new Array("F","E","Q",",","v","L","B","7","(","F","e","K","s","-");
change1[46] = new Array("B","h","h","4","T","T","8","1","w",":","y","4","a",".");
change1[47] = new Array("m","W","V","/","h","W",")","p","R",".","4","n","§",")");
change1[48] = new Array("j","j","?","y","7","§","P","h","J","J","5","g","g","Z");
change1[49] = new Array("9","b","b","Q","t","7","u","W","?","b","Q","R","q",",");
change1[50] = new Array("h","K","X","j","6","B","Z","a","e","w","g","S","6","7");
change1[51] = new Array("L","O","e","B","Z","P","h","H","U","Q","6","f","t","W");
change1[52] = new Array("t","y","i","I","p","0","7","M","5","8","n","b","K","0");
change1[53] = new Array("l","+","G","Z","P","n","V","V","Q","e","-","C","Q","+");
change1[54] = new Array("0","H"," ","X","w","i","F","r","F","-","v","H","w","h");
change1[55] = new Array("O","z","j","b","y","b","t","k","A","I","1","6","H","r");
change1[56] = new Array("-","v","c","F",".","h","?","2","u","G","O","G","2","S");
change1[57] = new Array("Z","3","F","x","L","?","r","m","q","H","J","?","5","D");
change1[58] = new Array("Y","m","r","9","N","/","9","t","S","R","?","u","/","j");
change1[59] = new Array("2","L","7","J"," ","3","n","6","!","!","G","x","S","v");
change1[60] = new Array("J","=","S","+","\"","r",":","d","k","y","\"","9",",","t");
change1[61] = new Array("i","/",":","K","M","g",".","O","Y","§","A","E","7","p");
change1[62] = new Array("X","M","p","D","I",")","v","N","z",")","L","q",".","F");
change1[63] = new Array("G","r","9","w","s","f","\"","L",")","(","K","P","Z","a");
change1[64] = new Array("v","Q","E","8","X","D","i","8","h","7","d","F","v"," ");
change1[65] = new Array("K","1","L","r","g","J","y"," ","H","K","V","T","X","5");
change1[66] = new Array("=","k","/","f","4","s","K","X","8","l",".","M","O","3");
change1[67] = new Array("5","9","\"","i","8","l",",","Q","4","A","N","J","x","d");
change1[68] = new Array("q","Z","P","(","=","Q","x","I","D","=","I","1","B","B");
change1[69] = new Array("f","J","a","q","G","M","C","f","+","0","Z","/","Y","k");
change1[70] = new Array("S","c","8","L","9","G","b","b","T","N","z","U","3","f");
change1[71] = new Array("M","d","K","7","e",":","§","-","x","x","7","0","l","T");
change1[72] = new Array("U",")","z","N","E","c","J","z","V","j","/","y","0","M");
change1[73] = new Array("r","S","C","H","D","V","g","g","g","u","=","5","z","6");
change1[74] = new Array("T","2","Y","d","H","I","f","Z","=","/",")","7","C","K");
change1[75] = new Array("c","§","U","W","1","E","X","T","E","U","l","§","i","\"");
change1[76] = new Array("o","n","W",")","/","a","-","c","j","+","m","-","n","4");



msatz = document.changeForm.dialog.value;
manton=mpwstz;

  while (mpwstz.length < msatz.length) {
  mpwstz+= manton
    }

treffer ="";
wbstb = "";
for (myl=0; myl<msatz.length; myl++)
{
  mpsw = eval("mpwstz.charAt(" +myl+")");

   if (mpsw == "") wbstb = 0;
   if (mpsw == "a") wbstb = 1;
   if (mpsw == "b") wbstb = 2;
   if (mpsw == "c") wbstb = 0;
   if (mpsw == "d") wbstb = 1;
   if (mpsw == "e") wbstb = 2;
   if (mpsw == "f") wbstb = 0;
   if (mpsw == "g") wbstb = 1;
   if (mpsw == "h") wbstb = 2;
   if (mpsw == "i") wbstb = 0;
   if (mpsw == "j") wbstb = 1;
   if (mpsw == "k") wbstb = 2;
   if (mpsw == "l") wbstb = 0;
   if (mpsw == "m") wbstb = 1;
   if (mpsw == "n") wbstb = 2;
   if (mpsw == "o") wbstb = 0;
   if (mpsw == "p") wbstb = 1;
   if (mpsw == "q") wbstb = 2;
  if (mpsw == "r") wbstb = 0;
  if (mpsw == "s") wbstb = 1;
  if (mpsw == "t") wbstb = 2;
  if (mpsw == "u") wbstb = 0;
  if (mpsw == "v") wbstb = 1;
  if (mpsw == "w") wbstb = 2;
  if (mpsw == "x") wbstb = 0;
  if (mpsw == "y") wbstb = 1;
  if (mpsw == "z") wbstb = 2;
  if (mpsw == "0") wbstb = 0;
  if (mpsw == "1") wbstb = 1;
  if (mpsw == "2") wbstb = 2;
  if (mpsw == "3") wbstb = 0;
  if (mpsw == "4") wbstb = 1;
  if (mpsw == "5") wbstb = 2;
  if (mpsw == "6") wbstb = 0;
  if (mpsw == "7") wbstb = 1;
  if (mpsw == "8") wbstb = 2;
  if (mpsw == "9") wbstb = 0;
  if (mpsw == ".") wbstb = 1;
  if (mpsw == "(") wbstb = 2;
  if (mpsw == "A") wbstb = 2;
  if (mpsw == "B") wbstb = 1;
  if (mpsw == "C") wbstb = 0;
  if (mpsw == "D") wbstb = 2;
  if (mpsw == "E") wbstb = 1;
  if (mpsw == "F") wbstb = 0;
  if (mpsw == "G") wbstb = 2;
  if (mpsw == "H") wbstb = 1;
  if (mpsw == "I") wbstb = 0;
  if (mpsw == "J") wbstb = 2;
  if (mpsw == "K") wbstb = 1;
  if (mpsw == "L") wbstb = 0;
  if (mpsw == "M") wbstb = 2;
  if (mpsw == "N") wbstb = 1;
  if (mpsw == "O") wbstb = 0;
  if (mpsw == "P") wbstb = 2;
  if (mpsw == "Q") wbstb = 1;
  if (mpsw == "R") wbstb = 0;
  if (mpsw == "S") wbstb = 2;
  if (mpsw == "T") wbstb = 1;
  if (mpsw == "U") wbstb = 0;
  if (mpsw == "V") wbstb = 2;
  if (mpsw == "W") wbstb = 1;
  if (mpsw == "X") wbstb = 0;
  if (mpsw == "Y") wbstb = 2;
  if (mpsw == "Z") wbstb = 1;
  if (mpsw == " ") wbstb = 0;
  if (mpsw == ")") wbstb = 2;
  if (mpsw == ",") wbstb = 1;
  if (mpsw == "?") wbstb = 0;
  if (mpsw == "\"") wbstb = 2;
  if (mpsw == "/") wbstb = 1;
  if (mpsw == "+") wbstb = 0;
  if (mpsw == "-") wbstb = 2;
  if (mpsw == "=") wbstb = 1;
  if (mpsw == "^:") wbstb = 0;
  if (mpsw == "!") wbstb = 2;
  if (mpsw == "§") wbstb = 1;


alternatens = Math.floor((Math.random() * 76) + 1);
alternatens1 = Math.floor((Math.random() * 13) + 1);
bstswhl = eval("msatz.charAt(" +myl+")"); 

if (wbstb ==  0) {
   treffer+= bstswhl ;
} else {
   treffer+= change1[alternatens][alternatens1] ;
}

if (wbstb ==  1) {
    treffer+= bstswhl ;
} else {
   treffer+= change1[alternatens][alternatens1] ;
}

if (wbstb ==  2) {
   treffer+= bstswhl ;
} else {
   treffer+= change1[alternatens][alternatens1] ;
}

mpsw = "";
wbstb = "";
bstswhl = "";
alternatens = "";
}
document.changeForm.dialog.value = treffer;
}


function dec15() {
var rpws="satzeinfght";
rmstz = document.changeForm.dialog.value;
rrmntn=rpws;
vers=rmstz.length;
ausgleich=rmstz.length-1;
 while (rpws.length < ausgleich) {
 rpws+= rrmntn
  }
rtreffer = "";
rntreffer = "";
rbstb = "";
add = 0;
for (rmyl=0; rmyl<vers; rmyl++)
{
 rmpsw = eval("rpws.charAt(" +rmyl+")");
   if (rmpsw == "") rbstb = 0;
   if (rmpsw == "a") rbstb = 1;
   if (rmpsw == "b") rbstb = 2;
   if (rmpsw == "c") rbstb = 0;
   if (rmpsw == "d") rbstb = 1;
   if (rmpsw == "e") rbstb = 2;
   if (rmpsw == "f") rbstb = 0;
   if (rmpsw == "g") rbstb = 1;
   if (rmpsw == "h") rbstb = 2;
   if (rmpsw == "i") rbstb = 0;
   if (rmpsw == "j") rbstb = 1;
   if (rmpsw == "k") rbstb = 2;
   if (rmpsw == "l") rbstb = 0;
   if (rmpsw == "m") rbstb = 1;
   if (rmpsw == "n") rbstb = 2;
   if (rmpsw == "o") rbstb = 0;
   if (rmpsw == "p") rbstb = 1;
   if (rmpsw == "q") rbstb = 2;
   if (rmpsw == "r") rbstb = 0;
   if (rmpsw == "s") rbstb = 1;
   if (rmpsw == "t") rbstb = 2;
   if (rmpsw == "u") rbstb = 0;
   if (rmpsw == "v") rbstb = 1;
   if (rmpsw == "w") rbstb = 2;
   if (rmpsw == "x") rbstb = 0;
   if (rmpsw == "y") rbstb = 1;
   if (rmpsw == "z") rbstb = 2;
   if (rmpsw == "0") rbstb = 0;
   if (rmpsw == "1") rbstb = 1;
   if (rmpsw == "2") rbstb = 2;
   if (rmpsw == "3") rbstb = 0;
   if (rmpsw == "4") rbstb = 1;
   if (rmpsw == "5") rbstb = 2;
   if (rmpsw == "6") rbstb = 0;
   if (rmpsw == "7") rbstb = 1;
   if (rmpsw == "8") rbstb = 2;
   if (rmpsw == "9") rbstb = 0;
   if (rmpsw == ".") rbstb = 1;
   if (rmpsw == "(") rbstb = 2;
   if (rmpsw == "A") rbstb = 2;
   if (rmpsw == "B") rbstb = 1;
   if (rmpsw == "C") rbstb = 0;
   if (rmpsw == "D") rbstb = 2;
   if (rmpsw == "E") rbstb = 1;
   if (rmpsw == "F") rbstb = 0;
   if (rmpsw == "G") rbstb = 2;
   if (rmpsw == "H") rbstb = 1;
   if (rmpsw == "I") rbstb = 0;
   if (rmpsw == "J") rbstb = 2;
  if (rmpsw == "K") rbstb = 1;
   if (rmpsw == "L") rbstb = 0;
   if (rmpsw == "M") rbstb = 2;
   if (rmpsw == "N") rbstb = 1;
   if (rmpsw == "O") rbstb = 0;
   if (rmpsw == "P") rbstb = 2;
   if (rmpsw == "Q") rbstb = 1;
   if (rmpsw == "R") rbstb = 0;
   if (rmpsw == "S") rbstb = 2;
  if (rmpsw == "T") rbstb = 1;
   if (rmpsw == "U") rbstb = 0;
   if (rmpsw == "V") rbstb = 2;
   if (rmpsw == "W") rbstb = 1;
   if (rmpsw == "X") rbstb = 0;
   if (rmpsw == "Y") rbstb = 2;
   if (rmpsw == "Z") rbstb = 1;
   if (rmpsw == " ") rbstb = 0;
   if (rmpsw == ")") rbstb = 2;
   if (rmpsw == ",") rbstb = 1;
   if (rmpsw == "?") rbstb = 0;
   if (rmpsw == "\"") rbstb = 2;
   if (rmpsw == "/") rbstb = 1;
   if (rmpsw == "+") rbstb = 0;
   if (rmpsw == "-") rbstb = 2;
   if (rmpsw == "=") rbstb = 1;
   if (rmpsw == "^:") rbstb = 0;
   if (rmpsw == "!") rbstb = 2;
   if (rmpsw == "§") rbstb = 1;
 alter = add;
rtreffer = alter + rbstb;
rbstswhl = eval("rmstz.charAt(" +rtreffer+")");
if (1 != 5) rntreffer+= rbstswhl;
 rmpsw = "";
 rtreffer = "";
 rbstswhl = "";
 alter = "";
 rbstb = "";
 add = add + 3;
  }
 document.changeForm.dialog.value = rntreffer;
 }


</script>

  </head>
  <body style="color: white; background-color: black;" alink="red"
link="yellow" vlink="#3333ff">
  <center>
 <FORM NAME="changeForm">
 <div><h1>Verschlüsselung mit einer sicheren Variante von One Time PAD</h1><div>
<br>
<br>
<div><b>Provokativ: dieser Code ist einfach, aber nicht knackbar!!!</b></div>
<br>
<div>Geben Sie hier ein möglichst Password (am besten so lang wie der Text oder ganze Textseiten ein, je mehr, desto sicherer...</div>
<br>
<div><textarea id=pass rows="5" cols="35"></textarea></div>
<br>
<div>Geben Sie hier den Text ein</div>
<br>
<div><textarea id=dialog rows="10" cols="35"></textarea></div>
<br>
<div>
<INPUT TYPE="BUTTON" onClick="allnow()" VALUE="1-click-encode">
<INPUT TYPE="BUTTON" onClick="allrenow()" VALUE="1-click-decode"></div>
<div></div>
<br>
<br>
<INPUT TYPE="BUTTON" onClick="enc15()" VALUE="Quatschcode"><INPUT TYPE="BUTTON" onClick="dec15()" VALUE="Quatchreturn"></div>
<br>
<br>
<br></div>
<br>
</FORM></center>
</body>
</html>

-----


Nein, dieser Code wurde nicht von Chat GPT von Bing kreiert, sondern ist das "Abfallprodukt" von jahrelanger Verschlüsselung auf dieser Webseite mit einer aufwendigen Software Namens Nonsa, die mit mehreren Durchläufen einem Masterpassworttext und diversen Tabellen arbeitet, also eine Art OTP hochzwei-:)

Ach ja, eine lauffähige Demo gibt es natürlich auch unter diesem Link. Diese Verschlüsselung ist absolut betriebssystemunabhängig: Nur ein Browser muss vorhanden sein, gerne auch offline auf dem heimischen PC.
 
Ganz streng gesehen sollte das Passwort immer Wechseln und eben so lang sein wie der Ursprungstext. Der  Kasisky Test könnte sonst positiv ausfallen, wie sie es in diesem Video von You Tube gerne nachvollziehen können: https://www.youtube.com/watch?v=Y6qimy9o3f4 .

Ansonsten sind so ziemlich alle Buchstaben im deutschen Sprachcode  (UTF8 hexadezimal-Code) berücksichtigt.  Zusätzlich kann man den Text mit Quatschcode auffüllen - der Text verdreifacht sich dann bei jeder Betätigung des Quatschcodes: Grob gesehen werden Buchstaben aus einer Tabelle nach Zufallssystem eingefügt, wobei man nicht weiß, an welcher Stelle der einzelne Buchstabe innerhalb von drei Buchstaben steht. Der Quatschcode kann nach oder vor der Verschlüsselung eingesetzt werden, muss aber Ansonsten  in der richtigen Reihenfolge dann wieder  entfernt werden.

Ach ja ü,ä,ö,ß, @ und €sollten nicht als Passwort verwendet werden! Passiert zwar nichts, aber  ist zur Zeit ein Fallback eingerichtet. Umgekehrt  können diese Zeichen in dem Text, der verschlüsselt werden soll, verwendet werden: Die Zeichen werden dann durch  mehr oder weniger sinnige Zeichen automatisch ausgetauscht. Keine Angst, beim decodieren werden die dann wieder zu den  oben angegebenen Zeichen zurückkonvertiert (replace-Funktion in Javascript).

Wie gesagt, alle mehr oder weniger gebräuchlichen Zeichen werden azeptiert und es entsteht kein Kauderwelch.

Ach ja, das Passwort für den Quatschcode var mpwstz="satzeinfght";
können oder sollten Sie ändern. Auch die Tabelle var change21 können Sie ändern. Genauso könnte man die Versatzzahlen meiner Meinung nach verschieben, aber nicht erhöhen oder niedriger machen, weil es sonst zu Problemen kommen könnte. Das eben gesagte trifft sowieso nur für den Quatschcode zu.

Eine ausführliche Beschreibung fertige ich noch an. Da der Code bisher unter dem Label Caesar-Verschlüsselung lief, war das Interesse an der Verschlüsselung eher Mau.

Tja, mein NoNSA ist zwar um einiges sicherer, aber OTB ist eben geläufig und dann kommen wir schon zum Fazit:

Ich finde es lustig, dass man durch einfache Minus und Plus-Rechnung einen "unknackbaren Code" kreieren kann.

Vielleicht liegen Lösungen auch in anderen Bereichen in einer einfachen Sprache als in komplizierten Algorithmen vor und müssen nur entdeckt werden - als Beispiel nehme ich da Wurzel, Kubikwurzel usw., wo man mit "relativ einfachen" Berechnungen im Mal, geteilt, Plus und Minusbereich selbst komplexe Aufgaben lösen kann, wie z. B. dieses Verfahren im Bereich 2.  Wurzelziehen https://www.youtube.com/watch?v=c_vQL0qw49c&t=369s

Interessant ist, dass ich wirklich keine Ahnung von
Herrn Vigenere und One Time PAD hatte, aber ein paar Hundert Jahre zu spät unabhängig auf dieselbe Idee gekommen bin (insperiert durch den Caesar Code, den ich kannte). Für mich nur eine Bestätigung, dass Menschen im allgemeinen nach Verbesserung streben und der Weg von Gedankengängen zu der richtigen Idee dann ähnlich und "universal" sind und dann zum selben Ergebnis kommen, wenn es eine gute Idee war.

Na ja, bald wird KI den Code entwickeln, da bin ich noch froh, dass das hier 100 % Mensch war
.


----


---

25.05.2023 Newsletter mit Anzeige eines Textes pro Tag erstellen:

Ich erstellte gerade nach erfolgloser Anfrage bei KI selbst ein Javascript, dass zum jeweiligen Datum ein Gedicht anzeigt:

<html>
 <head>
  <meta name="generator" content="HTML Studio">
  <title>Probe </title>
 </head>
<body style="color: rgb(255, 255, 255); background-color: rgb(0, 0, 0);" alink="#ff0000" link="#ffff00" vlink="#990099">
 <div align="center">
 
 <script language="JavaScript">

{
heute = new Date();
Tag = heute.getDate();
Monat = heute.getMonth() + 1;

// poem 1    25.05.2023
// poem 2   26.05.2023
if (Monat == 5 && Tag == 26)
document.write("my poem 1");
if (Monat == 5 && Tag == 25)
document.write("my poem 2");
}
</script>
</div>


 </body>
</html>

Naja, war halb fertig in meiner Astrouhr implementiert....Wichtig nur der Javascripttext. Definiere heute, Tag und Monat. Dann nach Anmerkungen zu den Tagen, an welchen Tag das Skript ausgeführt wird. Am Ende ein If-Statement, dass wenn der Monat und Tag mit dem heutigen Tag übereinstimmt, in den Div-Bereich der Text geschrieben wird, der in Klammern und in Anführungsstrichen im document.write  steh, "ausgedruckt wird: my poem 1 steht dabei für ein Gedicht. Genausogut kann man dann News, Reime oder sonst irgendwas reinschreiben.
Dasselbe geht auch bei Fotos und mit verschieden langen Zeiträumen - siehe auch 
Astrouhr im Quellcode.

Geht natürlich nicht, wenn Javascript im Browser deaktiviert ist.


-----



Tipps zu PHP:
Umfrage mit Radio Button und grafischer Darstellung in css





Impressum
Kontaktformular
Datenschutz