131. Buchstaben im Alphabet nach Zufallszahl mit Batch sortieren

Einleitung


Dieses ist eine Abhandlung zu 100 % für Batchschreiber. Für die ist die Überschrift: wie generiere ich Zufallsbuchstaben. Die nächste Abhandlung ist dann wieder in VBS. Ist für den Autor auch immer ein Spagat - wie schaffe ich es, "normale Abhandlungen" über  Batchprobleme zu schreiben, ohne das Ziel einer lauffähigen  Anwendung nicht aus den Augen zu verlieren...

Der Sternenhimmelstuermer schreibt gerade an einer Software für ein kryptologisches Verfahren. Diese Zwischenabhandlung beschäftigt sich mit der zufälligen Zuordnung von einem Buchstaben für einen Buchstaben. Das wird in einem Textdokument festgehalten und später Grundlage für die Verschlüsselung und Entschlüssung. Die besteht aus einem einfachen Suchen und Ersetzen - entweder von einer einzelnen Reihe oder einzelner Blöcke - der Sternenhimmelstuermer schreibt ohne Planung ins blaue hinein.

Ein Userinterface entstand unter dem Projektnamen NoNSA, eine vollständige Textverschlüsselung im Browser mit einer HTML-Seite mit Javascript, die von einer Generatorbatch erzeugt wird. Mit der einen Version können vollständige Textdokumente mit einer hta über Base64 verschlüsselt werden. 512 Reihen a 76 Buchstaben bieten eine einmalige Verschlüsselungsalternative im Internet. Der Motor wird auf dieser Seite beschrieben.

So können Alternativen zu Babel entstehen, basierend auf dem Quellcode des Sternenhimmelstuermers, was O. K. ist, wenn man auf den Ursprung, also diese Seite verweist - alles andere ist geistiger Diebstahl.


Inhaltsangabe
Quellcode für Ziehung eines Buchstabens und Ausdruck von alten - neuen - neuen alten Buchstaben
Erklärung Schritt für Schritt
Anpassung der Batch: Ziehung von mehreren unterschiedlichen Buchstaben aus dem Alphabet und Ausdruck untereinander
Quellcode für Ziehung von einem Zufallsbuchstaben a - z leicht gekürzt
Gedankenansatz zur Vereinfachung der Programmierung für Batchschreiber

Quellcode für Ziehung eines Buchstabens und Ausdruck von alten - neuen - neuen - alten Buchstaben

Name: irgendeinName.bat

set destination=%~dp0%
REM alphatext der durch Austausch von Buchstaben sicher wird
>"%destination%alpha_1.txt"  ECHO a
>"%destination%alpha_2.txt" ECHO b
>"%destination%alpha_3.txt" ECHO c
>"%destination%alpha_4.txt" ECHO d
>"%destination%alpha_5.txt" ECHO e
>"%destination%alpha_6.txt" ECHO f
>"%destination%alpha_7.txt" ECHO g
>"%destination%alpha_8.txt" ECHO h
>"%destination%alpha_9.txt" ECHO i
>"%destination%alpha_10.txt" ECHO j
>"%destination%alpha_11.txt" ECHO k
>"%destination%alpha_12.txt" ECHO l
>"%destination%alpha_13.txt" ECHO m
>"%destination%alpha_14.txt" ECHO n
>"%destination%alpha_15.txt" ECHO o
>"%destination%alpha_16.txt" ECHO p
>"%destination%alpha_17.txt" ECHO q
>"%destination%alpha_18.txt" ECHO r
>"%destination%alpha_19.txt" ECHO s
>"%destination%alpha_20.txt" ECHO t
>"%destination%alpha_21.txt" ECHO u
>"%destination%alpha_22.txt" ECHO v
>"%destination%alpha_23.txt" ECHO w
>"%destination%alpha_24.txt" ECHO x
>"%destination%alpha_25.txt" ECHO y
>"%destination%alpha_26.txt" ECHO z
REM Zuordnung von Buchstaben zur Codierung und Decodierung
set /a x=0
 :Schleife
 if %x% GEQ 26 goto ende
set /a x=%x%+1
 :neueZahl
 SET MIN=1
 SET MAX=26
 SET /a Zufallszahl=MIN+(MAX-MIN+1)*%random%/32768
 If exist beta_%Zufallszahl%_*.txt (goto neueZahl) else echo %Zufallszahl% >beta_%Zufallszahl%_%x%.txt
 for /f %%a in (beta_%Zufallszahl%_%x%.txt) do for /f %%i in (alpha_%x%.txt) do echo %%i >>beta_%Zufallszahl%.log
 goto :Schleife
 :ende
set /a z=1
:anfang
for /f %%a in (beta_%z%.log) do for /f %%i in (alpha_%z%.txt) do echo %%i %%a %%a %%i >>chiffre.txt
if %z% GEQ 26 goto dele
Set /a z=%z%+1
goto :anfang
:dele
 del beta_*_*.txt
del beta_*.log
del alpha_*.txt


Erkklärung Schritt für Schritt


set destination=%~dp0%
REM alphatext der durch Austausch von Buchstaben sicher wird
>"%destination%alpha_1.txt"  ECHO a

Erstmal bestimmt die Batch in der ersten Zeile den eigenen Pfad. Dazu wird eine Variable mit Namen destination geschaffen. Den Namen bei einer Variablen kann man frei bestimmen.
In der zweiten Zeile verwendet der Sternenhimmelstuermer den "Befehl" REM (remark). Der Text dahinter ist ein Notizzettel für den Batchschreiber. Normalerweise arbeitet der Sternenhimmelstuermer ohne dieses Füllmaterial, aber damit ist die Möglichkeit auf der Sternenhimmelstuermer zumindest angesprochen...

Die nächste Zeile ist stellvertretend für die nächsten 25 Zeilen. Der Sternenhimmelstuermer schafft für jeden Buchstaben ein Textdokument mit dem Buchstaben. Viele Batchschreiber streuben sich dagegen viele Unterdokumente zu schaffen - ein Riesenfehler: Bei den Vorzeigebatches dieser Seite von der Archivierung bis zum Duoblettenfinder werden hunderte von Hilfsdokumenten geschaffen. Wir Batchschreiber haben sonst keine wirkliche Möglichkeit Arrays zu schaffen und auf die einzelnen Inhalte zuzugreifen. >"%destination%alpha_1.txt"  ECHO a Das ist also der Pfad zum alpha_1.txt . Der Schrägstrich ist da immer mit drinnen - kleine Falle nebenbei. Alles hinter ECHO ist der Text, der in  alpha_1.txt steht. Bei normalen Buchstaben und keinen Sonderzeichen ist das easy. Ein Ausgabezeichen > wird immer in der ersten Zeile verwendet, hingegen zwei Ausgabezeichen >>, wenn man weitere Zeilen hinzufügen will.

Warum gibt der Sternenhimmelstuermer also jeder Zahl einen Buchstaben? Weil wir die Buchstaben  kurzfristig Zahlen zuordnen müssen, um mit Hilfe von zufällig generierten Zusatzzahlen dann einzelne Buchstaben aufzurufen, die dann in diesem Fall zu einer Verschlüsselung nach dem Zufallsprinzip verwendet werden - wird alles noch erklärt.

Ach ja, mathemathisch gesehen dürfte es dann so um die 26 2  Möglichkeiten geben, um die Buchstaben in eine neue Reihe zu bringen. Das können Sie natürlich erhöhen, wenn Sie ä,ö,ü und Zahlen einfügen: Einfach alpha_27.txt und fortfolgend kreieren und dann die Höhe der Zufallszahlen ändern...eben die roten Zahlen anpassen!

set /a x=0
 :Schleife
 if %x% GEQ 26 goto ende
set /a x=%x%+1
 :neueZahl
 SET MIN=1
 SET MAX=26
 SET /a Zufallszahl=MIN+(MAX-MIN+1)*%random%/32768

Der nächste Block deklariert eine Zufallszahl zwischen  0-27. Das wurde eingehend in der Abhandlung über Lottozahlen abgehandelt. Das geht dann wieder über eine Schleife. Die 26. mal eine unterschiedliche Zahl generiert.  

 If exist beta_%Zufallszahl%_*.txt (goto neueZahl) else echo %Zufallszahl% >beta_%Zufallszahl%_%x%.txt

Das ist dann die Prüfung  If exist beta_%Zufallszahl%_*.txt ob ein Zufallszahlentextdokument besteht, in dem eine Zufallszahl im Titel drin steht. Gibt es das nicht, dann wird ein Textdokument mit der Durchlaufzahl x und der Zufallszahl gebildet (im Titel und Dokument).

  for /f %%a in (beta_%Zufallszahl%_%x%.txt) do for /f %%i in (alpha_%x%.txt) do echo %%i >>beta_%Zufallszahl%.log

Diese Zeile befremdet Sie vielleicht, aber ist eine altbekannte Größe für den Sternenhimmelstuermer. Bei zwei einzeiligen Dokumenten kann man den Inhalt der Dokumente miteinander Kreuzen, so dass Sie als eine Zeile im neuen Dokument stehen.
for /f %%a in (beta_%Zufallszahl%_%x%.txt) do heißt übersetzt: Für den Inhalt hier absolut unnötigen for /f %%a des Dokumentes der gerade gezogen Zufalsszahl beta_%Zufallszahl%_%x%.txt tue den wichtigen gleichnamigen Inhalt im alpha_%x%.txt wiedergeben in einem Logdokument mit Namen beta_%Zufallszahl%.log.

Wir haben jetzt also z. B. ein Zufallsdokument beta_13_1.txt  im ersten Durchlauf, wenn 13 die Zufallszahl ist. Der Inhalt ist egal. Dann haben wir ein alpha_1.txt in der zweiten Hälfte des For-Befehls. Der 1. Buchstabe im Alphabet ist ein a.

Wir haben nun also ein beta_13.log, in dem ein  a steht.

Schön und gut wir haben nun also eine 13 und ein a. Also tauschen wir in einem weiteren Schritt den 13. Buchstaben mit dem a aus...

 goto :Schleife
 :ende


set /a z=1
:anfang
for /f %%a in (beta_%z%.log) do for /f  %%i in (alpha_%z%.txt) do echo %%i %%a %%a %%i >>chiffre.txt
Set /a z=%z%+1
if %z% GEQ 26 goto dele
goto :anfang
:dele


Die nächsten zwei Zeilen sind das Ende der ersten Schleife. 26 Mal wird einem Buchstaben eine Zahl zugeordnet. Bei jedem Durchlauf wird geprüft, ob eine Zahl schon zugeordnet wurde If exist beta_%Zufallszahl%_*.txt (goto neueZahl) else echo %Zufallszahl% >beta_%Zufallszahl%_%x%.txt. Ist das der Fall wird eine neue Zufallszahl gezogen. Ansonsten eine neue Zahl einem Buchstaben zugeordnet.  

Spätestens bei x=26 ist Schluss mit der Schleife if %x% GEQ 26 goto ende . Falls Sie das noch nicht so verstanden haben: Wichtig ist nur zu wissen, dass jedem Buchstaben nach dem Gesetz des Zufalls eine Zahl zugeordnet wurde. Das fixieren wir nun in einem weiteren Dokument....diesmal Zeile für Zeile:

set /a z=1

Wir setzen eine Variable z auf 1

:anfang

Wir gehen in eine neue Schleife.

for /f %%a in (beta_%z%.log) do for /f  %%i in (alpha_%z%.txt) do echo %%i %%a %%a %%i >>chiffre.txt

Wir haben nun wieder einen doppelten For-Befehl und verwenden ihn nun so, wie man ihn normalerweise verwendet bei einer einzeligen Textdatei!!! Bei zwei Zeilen würde da jede Menge Dokumente herauskommen, weil alle Kreuzungsmöglichkeiten durch den For-Befehl durchgegangen werden. Das ist der Stapelverarbeitung geschuldet und aus zwei mach vier kann man nur selten gebrauchen und aus drei mach neun noch weniger...

Der Befehl in falschem Deutsch übersetzt:

Für for den Inhalt %%a ( ist ein Buchstabe von a-z per Zufall eben einer Zeile zugeordnet) von beta_%z%.log (im ersten Durchlauf ist z=1. Wir wissen, dass es ein beta_1.log - beta_26.log vorliegt. ) tue do  wie  für den Inhalt (%%i) von alpha_%z%.txt (das ist im ersten Durchgang der Schleife definitiv ein a, im zweiten ein b) wiedergeben (do echo)  den Inalt %%i  (Das %%i bezieht sich auf den zweiten Teil der Schleife, ist also bei z=1 im ersten Durchlauf ein a. Das %%i bzw. a wird dann nicht nur an erster, sondern auch an vierter Stelle ausgegeben), dann den Inhalt von der ersten Hälfte des For-Befehls %%a zweimal und dann wieder dann Inhalt des zweiten Dokuments %%i ergänzend in einen Chiffre Text >>chiffre.txt.

Damit stet im chiffre.txt z. B. im ersten Durchlauf a g g a .

Wozu ist das gut? a wird einmal später durch g ersetzt und g durch a beim decodieren - eben umgekehrt. Das mit VBS. Suchen und Ersetzen ist eine Spezialität von VBS.

Für jemand der nur einen Zufallsbuchstaben haben will: Kürzen Sie die Zeile. Einfachste Form: einfach nur %%a ausgeben. Dann steht im Chiffre-Text nur ein zufällig generierter Buchstabe.

 Set /a z=%z%+1
if %z% GEQ 26 goto dele
goto :anfang
:dele
Z wird nun auf 2 Set /a z=%z%+1 gesetzt. Das heißt, dass 26 noch nicht erreicht ist (if %z% GEQ 26 goto dele)  und somit die Schleife noch nicht verlassen wird. Aha, es werden nun 26 Buchstaben jeweils neue Buchstaben zugeordnet oder wenn Sie die Batch abändern 26 unterschiedliche Buchstaben nach dem Zufallsprinzip gezogen.  Genausogut könnten Sie nur einen Zufallsbuchstaben ziehen, wenn Sie die rote 26 in eine 1  umwandeln. Dann würde die Schleife nach Ziehung eines  Buchstabens  beendet werden.  Das natürlich nur, wenn Sie im For-Befehl wie o. a. angegeben  nur %%a schreiben, also :

for /f %%a in (beta_%z%.log) do for /f  %%i in (alpha_%z%.txt) do echo  %%a >>chiffre.txt

Tja,  goto :anfang ist das Ende der Anfang der zweiten Schleife, da so lange z noch nicht 26 ist, Buchstabe nach Buchstabe in den chiffre.txt eingepflegt werden.

Wenn die 26 dann erreicht ist, dann hat jeder Buchstabe eine neue einmalige Bedeutung oder eben pragmatisch gesagt: Sie haben 26 Zeilen a vier Buchstaben. Die ersten zwei für das Codieren und die beiden andern für das decodieren. Der If Befehl (if %z% GEQ 26 goto dele) wird aktiv und schickt die Batch zur letzten Zeile dele der Schleife.

 del beta_*_*.txt
del beta_*.log
del alpha_*.txt

Die Hilsdokumente werden nun zerstört. Wer sich die ganzen Hilfsdokumente zum Nachverfolgen anschauen will, der nehme diese drei Befehle weg. Um Fehler zu überprüfen macht der Sternenhimmelstuermer das auch-:)

Das war es auch schon. Sie sehen, niemand kann Nachverfolgen, wie Ihr Buchstabencode verschlüsselt wurde. Jetzt kommt das fiese für Codeknacker. Man kann den Schlüssel später auf einzelne Zeilen oder Blöcke anwenden, indem man z. B. für jede Zeile einen neuen chiffre_1.txt, chiffre_2.txt kreiert.

Beim Suchen und Ersetzen in einem Textdokument hieße das, dass immer ein Teilausschnitt aus einem vollständigen Alphabet, in einer Zeile verwendet wird, also z. B. in der ersten Zeile eines unverschlüsselten Textes werden die Buchstaben nach dem Dokument Chiffre_1 ersetzt.

Der Sternenhimmelstuermer behauptet, dass er mit dieser und wenigen weiteren Schritten, die hier noch vorgestellt werden, einen unknackbaren Code zumindest für SMS kreieren kann, die er dann in Viererblöcken verschlüsseln würde - für jeden Block einen Chiffre_*.txt mit erweiterten Alphabet und zufällig in der Reihe geänderten Blöcken.


Anpassung der Batch: Ziehung von mehreren unterschiedlichen Buchstaben aus dem Alphabet und Ausdruck untereinander



Wenn Sie zwei oder sieben einmalige Buchstaben aus dem Alphabet ziehen wollen, um z. B. ein lustiges Quiz daraus zu machen, dann müssen Sie die erste Batch am Anfang anpassen. Das ist wirklich einfach: if %z% GEQ 26 goto dele Die rote 26 in die Zahl der Buchstaben umwandeln die Sie zufällig und einmalig ziehen wollen. Die Zahl muss dann unter 26 sein und dann die Zeile:

for /f %%a in (beta_%z%.log) do for /f %%i in (alpha_%z%.txt) do echo %%i %%a %%a %%i >>chiffre.txt
durch die Zeile: for /f %%a in (beta_%z%.log) do for /f %%i in (alpha_%z%.txt) do echo %%a >>chiffre.txt

ersetzen. Das war es schon.



Einen Zufallsbuchstaben ziehen


Das ist die gekürzte Fassung für die Ausgabe von einem Zufallsbuchstaben in einem Textdokument.

set destination=%~dp0%
REM alphatext der durch Austausch von Buchstaben sicher wird
>"%destination%alpha_1.txt"  ECHO a
>"%destination%alpha_2.txt" ECHO b
>"%destination%alpha_3.txt" ECHO c
>"%destination%alpha_4.txt" ECHO d
>"%destination%alpha_5.txt" ECHO e
>"%destination%alpha_6.txt" ECHO f
>"%destination%alpha_7.txt" ECHO g
>"%destination%alpha_8.txt" ECHO h
>"%destination%alpha_9.txt" ECHO i
>"%destination%alpha_10.txt" ECHO j
>"%destination%alpha_11.txt" ECHO k
>"%destination%alpha_12.txt" ECHO l
>"%destination%alpha_13.txt" ECHO m
>"%destination%alpha_14.txt" ECHO n
>"%destination%alpha_15.txt" ECHO o
>"%destination%alpha_16.txt" ECHO p
>"%destination%alpha_17.txt" ECHO q
>"%destination%alpha_18.txt" ECHO r
>"%destination%alpha_19.txt" ECHO s
>"%destination%alpha_20.txt" ECHO t
>"%destination%alpha_21.txt" ECHO u
>"%destination%alpha_22.txt" ECHO v
>"%destination%alpha_23.txt" ECHO w
>"%destination%alpha_24.txt" ECHO x
>"%destination%alpha_25.txt" ECHO y
>"%destination%alpha_26.txt" ECHO z
REM Zuordnung von Buchstaben zur Codierung und Decodierung
set /a x=0
 :Schleife
 if %x% GEQ 26 goto ende
set /a x=%x%+1
 :neueZahl
 SET MIN=1
 SET MAX=26
 SET /a Zufallszahl=MIN+(MAX-MIN+1)*%random%/32768
 If exist beta_%Zufallszahl%_*.txt (goto neueZahl) else echo %Zufallszahl% >beta_%Zufallszahl%_%x%.txt
 for /f %%a in (beta_%Zufallszahl%_%x%.txt) do for /f %%i in (alpha_%x%.txt) do echo %%i >>beta_%Zufallszahl%.log
 goto :Schleife
 :ende
set /a z=1
for /f %%a in (beta_%z%.log) do for /f %%i in (alpha_%z%.txt) do echo %%a >>chiffre.txt
:dele
 del beta_*_*.txt
del beta_*.log
del alpha_*.txt
.



O. K., das geht natürlich eigentlich noch viel kürzer und ist nur ein Abfallprodukt, da die o. a. Batch erst alle Stärken dieses Codes ausspielen kann.


Gedankenansatz zur Vereinfachung der Programmierung für Batchschreiber


Der Sternenhimmelstuermer denkt beim Batchschreiben objektorientiert. Für Ihn sind die alpa_1.txt -alpha_26.txt ein sogenanntes Array. In jeder Nummer der Überschrift ist eine Nummer, die auf der Metaebene die Positionsnummer innerhalb des Arrays ist - wer sagt eigentlich, dass ein Array nicht in seine Einzelteile zerlegt werden kann? Es bleibt immer noch eine Einheit - in diesem Fall das Alphabet.

Das zweite "Array" sind die beta_%Zufallszahl%en_Zahl der Ziehung(x). Beta ist dabei die Überschrift des Arrays und die %Zufallszahl% die drucheinandergewürfelte Positionen 1 -26. Danach versucht der Sternenhimmelstuermer den Inhalt der beiden
Arrays zu kreuzen.  Die Schwierigkeit dabei war es  hie,r die Zahlen des Arrays  in beta_%Zufallszahl%en_Zahl der Ziehung(x) in Buchstaben umzuwandeln. Das wird für jede Zeile in der Schleife mit der Zeile

for /f %%a in (beta_%Zufallszahl%_%x%.txt) do for /f %%i in (alpha_%x%.txt) do echo %%i


gemacht. Der Trick ist dabei, dass das x die Zahlen 1 - 26 abdeckt und somit aus dem Alpha-Dokument-Array Zeile für Zeile  (eben in der Schleife) ein neues Beta-Array erstellt wird,  dessen  Reihenfolge sich aus der Zufallszahl bestimmt.

Am Ende werden die beiden Arrays je nach Bedürfnis angezapft. Das ist dann ein Problem der Ausgabe:

Bei der Ausgabe von einem Zufallsbuchstaben ist eine zweite Schleife nicht nötig, die Ausgabzeile lautet: 

for /f %%a in (beta_%z%.log) do for /f %%i in (alpha_%z%.txt) do echo %%a >>chiffre.txt

Der alte Buchstabe wird lediglich durch einen neuen ersetzt. Genausogut könnte man %%a %%i ausgeben. Wenn Z einer 1 entspricht ist also %%i =a und %%a irgendein Buchstabe.

Bei mehreren unterschiedlichen Buchstaben lautet die Zeile in der zweiten Schleife:

for /f %%a in (beta_%z%.log) do for /f %%i in (alpha_%z%.txt) do echo %%a >>chiffre.txt

Ja, dass ist ist dasselbe, weil wir nur die Zahl 26 in der Schleife geändert haben, z. B.  if %z% GEQ 15 goto dele  zieht 15 zufällige Buchstaben aus dem Array Beta von den Positionen (z) 1-15

Fazit

Das Spielen mit dem Zufall macht Spaß und ist zumindest für den Sternenhimmelstuermer easy. Die paar Codezeilen waren innerhalb von zweieinhalb Stunden entworfen, da der Sternenhimmelstuermer noch nicht wußte, wie er überhaupt an die Verschlüsselung herangeht, eine annehmbare Leistung - Das Schreiben dauerte wesentlich länger.

Erfreulich- es gab diesmal keine Zeile, an der sich der Sternenhimmelstuermer aufhängte. Langsam kann der Sternenhimmelstuermer seine Gedanken im Code ausdrücken und das bedeutet, dass der Autor dieser Seite dann mit dem Erscheinen von Windows 8 sich erstmal zurückziehen kann, um sich dann konzentriert der KI zuzuwenden. Das wird dann nicht mehr veröffentlicht. Der Sternenhimmelstuermer wird dann vielleicht mit Windows 9 zurückkehren.

Die Zeit läuft ab und die letzte Abhandlung ist dann die Vorstellung der Anwendung Babel, mit deren freien Weiterentwicklung vielleicht dann wirklich sichere Verschlüsselung möglich ist. Der Sternenhimmelstuermer wird bei der Weiterentwicklung weiterhin auf ein zufallsbasiertes System setzen, das dokumentiert in "Entschlüsselungstabellen" festgehalten wird. Durch die Möglichkeit schnell neue Schlüssel- und Entschlüsselungstabellen zu erstellen  wird das für Hacker sehr schwer...
Setzt man für jeden Buchstaben der zu verschlüssenden Worte einen erweiterten chiffre.txt an, so wird der Code in fest definierten großen Ausgabeblöcken unknackbar?  Das dauert leider bei langen Nachrichten zu lange...

Nachtrag: 25.04.2013: Im Rahmen der Abhandlung Babel to go wurden hier zwei Fehler entdeckt - die Batch war aber trotzdem lauffähig...




Zur besseren Orientierung auf den über 911  (Din A 4) Tippseiten in Abhandlungen von drei Generationen Windows der Sternenenhimmelstuermerpage die individualisierte Suchmaschine von Google mit Suchergebnissen nur von dieser Homepage: Selbst der Sternenhimmelstuemer findet sich bei diesem umfassenden Content trotz präziser Sortierung der Abhandlungen nur mit Hilfe von Suchmaschinen zu recht...


Loading



Haftungsausschluss - Das verwenden von Tipps oder Software auf dieser Seite auf eigene Gefahr.




Impressum
Datenschutz