EDV – die besten Beiträge

C Programmcode Ceasar Cipher?

Hallo,

die aufgabe ist folgende:

Schreiben Sie eine Funktion, welche eine Variante des [Caesar Cipher](https://en.wikipedia.org/wiki/Caesar_cipher) auf einen String anwendet. Hierbei wird anstatt eines vorgegebenen Betrages und einer vorgegebenen Richtung für die Chiffrierung der Schlüssel für jeden Buchstaben des Klartextes neu berechnet.

Funktionsweise:

Jede Verschiebung erfolgt abhängig vom Schlüssel. Ist der Schlüssel für das aktuelle Zeichen eine gerade Zahl, so wird das aktuelle Zeichen um diesen Betrag im Alphabet nach rechts verschoben (z.B. beim Schlüssel 2 wird aus einem A ein C). Ist der Schlüssel ungerade, so erfolgt eine Verschiebung nach links (z.B. beim Schlüssel 3 wird aus einem D ein A).

Würde eine Verschiebung über das Ende des Alphabets hinaus erfolgen, so wird die Zählung bei Beginn des Alphabets fortgesetzt. Beim Schlüssel 2 wird aus einem Z also ein B bzw. beim Schlüssel 3 aus einem A ein X.

Es werden nur Buchstaben des englsichen Alphabets (A-Z und a-z) chiffriert. Alle anderen Zeichen bleiben unverändert.

Der Startschlüssel wird nur auf das erste Zeichen angewendet. Danach wird der Schlüssel nach jeder Anwendung neu berechnet, indem der Zahlenwert des zuletzt veränderten Klartext-Zeichens (also 1 für A und a, 2 für B und b, bis 26 für Z und z) durch den zuletzt verwendeten Schlüssel dividiert wird. Der neue Schlüssel für das nächste Zeichen ist der ganzzahlige Rest dieser Division. Falls es hierbei zu einer Division durch Null kommen würde (weil der zuletzt verwendete Schlüssel 0 war) wird der neue Schlüssel wieder auf den Wert des Startschlüssels gesetzt.

Folgenden Code habe ich bis jetzt geschrieben, allerdings bekomm ich bei großen Schlüsseln (zb: start_key = 100) falsche Ergebnisse raus. Weiß glaube ich auch warum: Mein Algorithmus funktioniert ja über Werteverschiebung, d.h. ab einem bestimmt großen Wert des Schlüssels verschiebt sich mein Zahlenwert des chars zu weit und dann stimmt meine "Formel" nicht mehr. Hätte es jetzt damit gelöst, dass ich zuerst mit einer if Schleife auf einen zu großen Key prüfe (zB.: if Key > 25), anschließend dividiere ich diesen Key und gehe mit dem Ergebniss in eine neue Schleife rein wobei jetzt anstatt des Keys der neue Wert addiert bzw subtrahiert wird. Anschließend durchlaufe ich diese Schleife Key%25 mal.

Aber wie setze ich das um? Zusätzlich dazu wird der Code dann mega unübersichtlich und viel zu lang für eine simple Funktion. Gibt es auch andere Möglichkeiten als meinen Code?

Ps: Ich sende den Code extra weil sonst das Zeichenlimit überschritten wird

Computer, Mathematik, IT, programmieren, EDV, Informatik, Kryptographie, Universität, Algorithmus

Dokumentenmanagement-System (DMS): Bitfarm-Archiv auf einem Linux-Server installieren?

Hallo, ich würde das Dokumentenmanagement-System (DMS) Bitfarm-Archiv gerne auf einem Linux-Server installieren. Der Hersteller schreibt, dass Linux als Datenbankserver verwendet werden kann und teilweise auch als Fileserver.

Hierzu habe ich zwei Fragen:

  1. Wie soll die Installation auf einem Linux-Server funktionieren, wenn ich im Downloadbereich nur Installationsdateien für Windows-Systeme finde?
  2. Ist es so, dass der Datenbankserver die Metadaten (Dateiänderungen usw.) speichert und der Fileserver die eigentlichen Dateien? Wie kann denn die Revisionssicherheit dann sichergestellt werden, die in der Buchhaltung so wichtig ist, oder kann man auf einzelne Dokumente im Fileserver nicht direkt von außen zugreifen (etwa mit dem Windows Explorer)?

Danke!

Auf der Herstellerseite steht:

Welche Plattformen werden unterstützt?
bitfarm-Archiv DMS benötigt auf der Serverseite einen Windows Server ab 2008 R2 SP2, 2012 oder 2016. Bei sehr kleinen Installationen (z.B. 5 Benutzer Büro) kann auch Windows 7, 8 oder 10 als "Server" eingesetzt werden. Linux kann als Datenbankserver für MySQL und mit Einschränkungen auch als Fileserver benutzt werden. Die Standardempfehlung lautet aber bei mittleren Installationen, einen handelsüblichen Server oder VM mit Windows-Betriebssystem einzusetzen. Linux ist dazu nicht erforderlich.
Clientseitig wird ebenfalls Windows verwendet, alle Windows-Versionen ab Windows 7 sind kompatibel. Der Client ist auch terminalserverfähig. Es gibt außerdem die installationsfreie Zugriffsmöglichkeit über den Browser (Web-Viewer), sowie eine App für Android und iOS.
Quelle: https://www.bitfarm-archiv.de/dokumentenmanagement/faq.html
Server, Computer, Software, Buchhaltung, Datei, Technik, Linux, Programm, SQL, IT, System, Recht, Daten, Ubuntu, Management, Archiv, Datenbank, EDV, Finanzamt, Jura, Technologie, Spiele und Gaming

Meistgelesene Beiträge zum Thema EDV