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:
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)!!!:
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
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");
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:
{ 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.