Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.sci.electronics > #369034

Re: ChatGPT mit mittlerer Aufgabenstellung getestet

From Helmut Schellong <var@schellong.biz>
Newsgroups de.sci.electronics
Subject Re: ChatGPT mit mittlerer Aufgabenstellung getestet
Date 2026-08-26 22:07 +0200
Message-ID <116nh26$15on4$1@solani.org> (permalink)
References (1 earlier) <116jus6$3mht8$1@dont-email.me> <116k57e$13bg7$1@solani.org> <116ko1e$tsps$1@news1.tnib.de> <116l1n1$140dg$1@solani.org> <slrn118tfb7.meqp.als@frodo.angband.thangorodrim.de>

Show all headers | View raw


Alexander Schreiber wrote on 26.08.2026 12:18:
> Helmut Schellong <var@schellong.biz> wrote:
>> Marc Haber wrote on 25.08.2026 20:48:
>>> Helmut Schellong <var@schellong.biz> wrote:
>>>> Manuel Reimer wrote on 25.08.2026 13:38:
>>>>> On 25.08.26 12:57, Helmut Schellong wrote:
>>>>>> Ich habe mal zum Test eine genaue und vollständige Aufgabenstellung formuliert
>>>>>> und diese MS-Copilot vorgelegt:
>>>>>> [...]
>>>>>> Prinzipiell hat ChatGPT seine Aufgabe korrekt erfüllt.
>>>>>> [...]
>>>>>
>>>>> Was nun? Copilot oder ChatGPT? Das sind zwei verschiedene Paar Schuhe.
>>>>
>>>> Wikipedia:  "Copilot nutzt das Large Language Model GPT-5 von OpenAI"
>>>> Darauf kommt es mir an.
>>>
>>> Du bist doch immer vollständig logisch und korrekt. Warum schreibst Du
>>> dann ChatGPT; wenn Du doch ein ganz anderes Frontend benutzt hast, das
>>> GPT-5 als Backend benutzt?
>>
>> Hätte ChatGPT eine semantisch _andere_ Aufgaben-Lösung präsentiert, bei Nutzung
>> desselben Modells und desselben Herstellers?
>> Ich halte das (bei meiner Vorgabe) für ausgeschlossen.
> 
> Da spricht der Meister Aller Technologie! OpenAI sollte Dich dringend als CTO
> einstellen, bei Deinen tiefen Detailkenntnissen von LLMs.
> 
> Währenddessen in der Realität: Erfahrungsgemäss produzieren unterschiedliche
> Systeme auch unterschiedliche Resultate. Denn man hantiert nicht mit dem
> nackten Modell direkt, sondern mit der Infrastruktur drumherum (generell
> als harness ("Zaumzeug") bezeichnet) und diese macht u.a. Umschreiben und
> Filtern von Anfragen und Ergebnissen.

Ich merke, ich sollte mal 'Gleichheit der Resultate' definieren!

Das bedeutet nämlich, daß die beiden Skripte gleiche Arbeit verrichten.
Nicht, daß gleiche Byte-Anzahl und Byte-Gleichheit von Byte 0 bis Byte sz-1 vorliegen.
Da ich u.a. die Cipher nicht festlegte, können diese unterschiedlich gewählt werden.
Es kann auch unterschiedliche viele Fehlermeldungen geben - gar nicht festgelegt!
Unterschiede können allein durch unterschiedliche Generier-Zeitpunkte entstehen.
Etc.

Ich habe meinen Anforderungstext auf  chatgpt.com  eingegeben
und unten die Antwort einkopiert.
Sieht für mich im Überblick aus, als würde das Skript - gleiche Arbeit verrichten.

[...]
> Langer Rede kurzer Sinn: FreeBSD (und auch NetBSD, OpenBSD) und Linux sind
> de facto Unices. Es halt halt nur niemand Sinn darin gesehen, das Geld
> für eine offizielle Zertifizierung aus dem Fenster zu werfen.

Ich habe seit 1987 mit annähernd 10 verschiedenen Unix-Systemen gearbeitet.
Seit FreeBSD 3.1 eben fast nur mit FreeBSD.
Ich habe unter FreeBSD eine erkennbar unterschiedliche Dateimenge in /etc bemerkt.
Besonders gegenüber SystemV-Systemen.

Ich schätze, da wird was verwässert.


chatgpt.com
================================================================================================================================

#!/usr/bin/env bash
#
# cryptbackup.sh
#
# Verschlüsseln:
#   ./cryptbackup.sh DATEI ALGORITHMUSFOLGE
#
# Entschlüsseln:
#   ./cryptbackup.sh DATEI.ENDUNG d
#
# Mit Arbeitsverzeichnis:
#   ./cryptbackup.sh ARBEITSVERZEICHNIS DATEI ALGORITHMUSFOLGE
#
#   ./cryptbackup.sh ARBEITSVERZEICHNIS DATEI.ENDUNG d
#
# Beispiel:
#   ./cryptbackup.sh geheim.txt qm7
#   ./cryptbackup.sh geheim.txt.qm7 d
#
#   ./cryptbackup.sh /backup geheim.txt qm7
#   ./cryptbackup.sh /backup geheim.txt.qm7 d
#
# Interne, absichtlich nicht sprechende Zuordnung:
#   q -> AES256
#   m -> CAMELLIA256
#   7 -> TWOFISH
#
# Die Zuordnung dient ausschließlich der Verschleierung.
#

set -euo pipefail

PROGRAM="${0##*/}"

# ============================================================
# ALGORITHMUS-ZUORDNUNG
# ============================================================

declare -A ALG

ALG[q]="AES256"
ALG[m]="CAMELLIA256"
ALG[7]="TWOFISH"

# ============================================================
# HILFSFUNKTIONEN
# ============================================================

usage() {
     cat >&2 <<EOF
Verwendung:

   Verschlüsseln:
       $PROGRAM DATEI ALGORITHMUSFOLGE

   Entschlüsseln:
       $PROGRAM DATEI.ENDUNG d

   Mit Arbeitsverzeichnis:

       $PROGRAM ARBEITSVERZEICHNIS DATEI ALGORITHMUSFOLGE

       $PROGRAM ARBEITSVERZEICHNIS DATEI.ENDUNG d


Beispiele:

   $PROGRAM geheim.txt qm7
   $PROGRAM geheim.txt.qm7 d

   $PROGRAM /backup geheim.txt qm7
   $PROGRAM /backup geheim.txt.qm7 d


Verschlüsselung:
   Die Algorithmusfolge besteht aus 1 bis 6 Zeichen.

Entschlüsselung:
   Arg2 muss genau aus dem einen Zeichen 'd' bestehen.
   Die Algorithmusfolge wird aus dem Dateinamen gelesen.
EOF

     exit 2
}

die() {
     echo "$PROGRAM: $*" >&2
     exit 1
}

need_command() {
     command -v "$1" >/dev/null 2>&1 ||
         die "Benötigtes Programm '$1' wurde nicht gefunden."
}

# ============================================================
# SHA3-256
# ============================================================

sha3_256() {
     local file="$1"

     openssl dgst -sha3-256 -r "$file" |
         awk '{print $1}'
}

# ============================================================
# ALGORITHMUSFOLGE PRÜFEN
# ============================================================

decode_sequence() {
     local sequence="$1"
     local i
     local char

     # Nur 1 bis 6 Zeichen.
     # Erlaubt sind ausschließlich die definierten
     # Verschleierungszeichen.

     [[ "$sequence" =~ ^[qm7]{1,6}$ ]] ||
         die "Ungültige Algorithmusfolge: '$sequence'"

     # Zusätzliche Prüfung der Zuordnung.

     for ((i=0; i<${#sequence}; i++)); do

         char="${sequence:i:1}"

         [[ -n "${ALG[$char]+x}" ]] ||
             die "Unbekanntes Steuerzeichen '$char'"

     done
}

# ============================================================
# ARGUMENTE AUSWERTEN
# ============================================================

case "$#" in

     2)
         # Kein Arbeitsverzeichnis angegeben.
         #
         # Arg1 = Datei
         # Arg2 = Algorithmusfolge oder d

         WORKDIR="."
         FILE="$1"
         MODE="$2"
         ;;

     3)
         # Arbeitsverzeichnis angegeben.
         #
         # Arg1 = Arbeitsverzeichnis
         # Arg2 = Datei
         # Arg3 = Algorithmusfolge oder d

         WORKDIR="$1"
         FILE="$2"
         MODE="$3"
         ;;

     *)
         usage
         ;;

esac

# ============================================================
# ARBEITSVERZEICHNIS
# ============================================================

[[ -d "$WORKDIR" ]] ||
     die "Arbeitsverzeichnis existiert nicht: $WORKDIR"

cd -- "$WORKDIR"

# ============================================================
# BENÖTIGTE PROGRAMME
# ============================================================

need_command gpg
need_command openssl
need_command awk
need_command mktemp

# ============================================================
# ENTSCHLÜSSELUNG
#
# Arg2 bzw. Arg3 muss exakt "d" sein.
#
# Die Algorithmusfolge wird ausschließlich aus dem Dateinamen
# ermittelt.
# ============================================================

if [[ "$MODE" == "d" ]]; then

     # --------------------------------------------------------
     # Die verschlüsselte Datei muss vorhanden sein.
     # --------------------------------------------------------

     [[ -f "$FILE" ]] ||
         die "Datei existiert nicht: $FILE"

     # --------------------------------------------------------
     # Algorithmusfolge aus Dateinamen extrahieren.
     #
     # Beispiel:
     #
     #   geheim.txt.qm7
     #
     # ergibt:
     #
     #   ORIGINAL = geheim.txt
     #   SEQUENCE = qm7
     #
     # Die Endung darf 1 bis 6 Zeichen enthalten.
     # --------------------------------------------------------

     if [[ "$FILE" =~ ^(.+)\.([qm7]{1,6})$ ]]; then

         ORIGINAL="${BASH_REMATCH[1]}"
         SEQUENCE="${BASH_REMATCH[2]}"

     else

         die "Dateiname enthält keine gültige verschlüsselte Endung."

     fi

     # --------------------------------------------------------
     # Algorithmusfolge prüfen.
     # --------------------------------------------------------

     decode_sequence "$SEQUENCE"

     # --------------------------------------------------------
     # Zugehörige Hash-Datei
     #
     # geheim.txt.qm7.sha3_256
     # --------------------------------------------------------

     HASHFILE="${FILE}.sha3_256"

     [[ -f "$HASHFILE" ]] ||
         die "Hash-Datei fehlt: $HASHFILE"

     # --------------------------------------------------------
     # Erwarteten SHA3-256-Hash lesen.
     # --------------------------------------------------------

     EXPECTED_HASH="$(
         awk 'NR == 1 {print $1}' "$HASHFILE"
     )"

     [[ "$EXPECTED_HASH" =~ ^[0-9a-fA-F]{64}$ ]] ||
         die "Ungültiger SHA3-256-Hash in $HASHFILE"

     # --------------------------------------------------------
     # Tatsächlichen SHA3-256-Hash der verschlüsselten Datei
     # berechnen.
     # --------------------------------------------------------

     ACTUAL_HASH="$(sha3_256 "$FILE")"

     # --------------------------------------------------------
     # Hashvergleich VOR jeder Entschlüsselung.
     # --------------------------------------------------------

     if [[ "$EXPECTED_HASH" != "$ACTUAL_HASH" ]]; then

         die "HASH-FEHLER: Die verschlüsselte Datei wurde verändert oder beschädigt."

     fi

     echo "SHA3-256-Prüfung erfolgreich."

     # --------------------------------------------------------
     # Temporäres Arbeitsverzeichnis erzeugen.
     # --------------------------------------------------------

     TMPDIR="$(mktemp -d)"

     trap 'rm -rf -- "$TMPDIR"' EXIT

     CURRENT="$PWD/$FILE"

     # --------------------------------------------------------
     # Entschlüsselung
     #
     # Wenn verschlüsselt wurde:
     #
     #   AES -> CAMELLIA -> TWOFISH
     #
     # dann muss entschlüsselt werden:
     #
     #   TWOFISH -> CAMELLIA -> AES
     #
     # Deshalb wird SEQUENCE rückwärts durchlaufen.
     # --------------------------------------------------------

     for ((i=${#SEQUENCE}-1; i>=0; i--)); do

         CHAR="${SEQUENCE:i:1}"

         ALGORITHM="${ALG[$CHAR]}"

         OUTPUT="$TMPDIR/stage_$i"

         echo "Entschlüssele Schicht $(( ${#SEQUENCE} - i )): $CHAR"

         gpg \
             --batch \
             --yes \
             --pinentry-mode loopback \
             --decrypt \
             --output "$OUTPUT" \
             "$CURRENT"

         CURRENT="$OUTPUT"

     done

     # --------------------------------------------------------
     # Das ursprüngliche Dateiname darf nicht versehentlich
     # überschrieben werden.
     # --------------------------------------------------------

     if [[ -e "$ORIGINAL" ]]; then

         die "Zieldatei existiert bereits: $ORIGINAL"

     fi

     # --------------------------------------------------------
     # Entschlüsseltes Ergebnis an ursprünglichen Dateinamen
     # kopieren.
     # --------------------------------------------------------

     cp -- "$CURRENT" "$ORIGINAL"

     echo
     echo "Entschlüsselung erfolgreich:"
     echo "  $ORIGINAL"

# ============================================================
# VERSCHLÜSSELUNG
#
# MODE ist hier NICHT "d".
#
# MODE muss deshalb eine Algorithmusfolge mit 1 bis 6 Zeichen
# sein.
# ============================================================

else

     # --------------------------------------------------------
     # Bei der Verschlüsselung ist Arg2/Arg3 die
     # Algorithmusfolge.
     # --------------------------------------------------------

     SEQUENCE="$MODE"

     # --------------------------------------------------------
     # Algorithmusfolge prüfen.
     # --------------------------------------------------------

     decode_sequence "$SEQUENCE"

     # --------------------------------------------------------
     # Quelldatei prüfen.
     # --------------------------------------------------------

     [[ -f "$FILE" ]] ||
         die "Datei existiert nicht: $FILE"

     # --------------------------------------------------------
     # Zieldatei erzeugen.
     #
     # Beispiel:
     #
     #   geheim.txt
     #
     # wird zu:
     #
     #   geheim.txt.qm7
     # --------------------------------------------------------

     OUTPUT="${FILE}.${SEQUENCE}"

     # --------------------------------------------------------
     # Hash-Datei:
     #
     #   geheim.txt.qm7.sha3_256
     # --------------------------------------------------------

     HASHFILE="${OUTPUT}.sha3_256"

     # --------------------------------------------------------
     # Keine vorhandenen Dateien überschreiben.
     # --------------------------------------------------------

     [[ ! -e "$OUTPUT" ]] ||
         die "Zieldatei existiert bereits: $OUTPUT"

     [[ ! -e "$HASHFILE" ]] ||
         die "Hash-Datei existiert bereits: $HASHFILE"

     # --------------------------------------------------------
     # Temporäres Arbeitsverzeichnis
     # --------------------------------------------------------

     TMPDIR="$(mktemp -d)"

     trap 'rm -rf -- "$TMPDIR"' EXIT

     CURRENT="$PWD/$FILE"

     # --------------------------------------------------------
     # Verschlüsselung in der angegebenen Reihenfolge.
     #
     # Beispiel:
     #
     #   qm7
     #
     # bedeutet intern:
     #
     #   AES256
     #       |
     #   CAMELLIA256
     #       |
     #   TWOFISH
     # --------------------------------------------------------

     for ((i=0; i<${#SEQUENCE}; i++)); do

         CHAR="${SEQUENCE:i:1}"

         ALGORITHM="${ALG[$CHAR]}"

         NEXT="$TMPDIR/stage_$i"

         echo "Verschlüssele Schicht $((i + 1)): $CHAR"

         gpg \
             --batch \
             --yes \
             --pinentry-mode loopback \
             --symmetric \
             --cipher-algo "$ALGORITHM" \
             --output "$NEXT" \
             "$CURRENT"

         CURRENT="$NEXT"

     done

     # --------------------------------------------------------
     # Fertig verschlüsselten Inhalt an den endgültigen
     # Dateinamen kopieren.
     # --------------------------------------------------------

     cp -- "$CURRENT" "$OUTPUT"

     # --------------------------------------------------------
     # SHA3-256 über den FERTIG verschlüsselten Inhalt bilden.
     # --------------------------------------------------------

     HASH="$(sha3_256 "$OUTPUT")"

     # --------------------------------------------------------
     # Hash dauerhaft aufbewahren.
     #
     # Format:
     #
     #   HASH  DATEINAME
     # --------------------------------------------------------

     printf '%s  %s\n' \
         "$HASH" \
         "$(basename -- "$OUTPUT")" \
         > "$HASHFILE"

     # --------------------------------------------------------
     # Ergebnis anzeigen.
     # --------------------------------------------------------

     echo
     echo "Verschlüsselung erfolgreich:"
     echo "  Datei : $OUTPUT"
     echo "  Hash  : $HASHFILE"
     echo "  SHA3  : $HASH"

fi

Aufrufschema
Damit ist die gewünschte Schnittstelle jetzt eindeutig:

Verschlüsselung:
     cryptbackup.sh DATEI ALGORITHMUSFOLGE

Entschlüsselung:
     cryptbackup.sh DATEI.ENDUNG d

bzw. mit Arbeitsverzeichnis:

Verschlüsselung:
     cryptbackup.sh ARBEITSVERZEICHNIS DATEI ALGORITHMUSFOLGE

Entschlüsselung:
     cryptbackup.sh ARBEITSVERZEICHNIS DATEI.ENDUNG d

Beispielsweise:

./cryptbackup.sh geheim.pdf qm7

erzeugt:

geheim.pdf.qm7
geheim.pdf.qm7.sha3_256

und:

./cryptbackup.sh geheim.pdf.qm7 d

liest qm7 automatisch aus dem Dateinamen, prüft zuerst den SHA3-256-Hash und entschlüsselt anschließend die drei Schichten in 
umgekehrter Reihenfolge.
================================================================================================================================


-- 
Mit freundlichen Grüßen
Helmut Schellong

Back to de.sci.electronics | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

ChatGPT mit mittlerer Aufgabenstellung getestet Helmut Schellong <var@schellong.biz> - 2026-08-25 12:57 +0200
  Re: ChatGPT mit mittlerer Aufgabenstellung getestet Manuel Reimer <manuel.nulldevice@nurfuerspam.de> - 2026-08-25 13:38 +0200
    Re: ChatGPT mit mittlerer Aufgabenstellung getestet Axel Berger <Spam@Berger-Odenthal.De> - 2026-08-25 15:06 +0200
      Re: ChatGPT mit mittlerer Aufgabenstellung getestet Helmut Schellong <var@schellong.biz> - 2026-08-25 15:40 +0200
    Re: ChatGPT mit mittlerer Aufgabenstellung getestet Helmut Schellong <var@schellong.biz> - 2026-08-25 15:27 +0200
      Re: ChatGPT mit mittlerer Aufgabenstellung getestet Marc Haber <mh+usenetspam2616@zugschl.us> - 2026-08-25 20:48 +0200
        Re: ChatGPT mit mittlerer Aufgabenstellung getestet Helmut Schellong <var@schellong.biz> - 2026-08-25 23:33 +0200
          Re: ChatGPT mit mittlerer Aufgabenstellung getestet Marc Haber <mh+usenetspam2616@zugschl.us> - 2026-08-26 07:56 +0200
            Re: ChatGPT mit mittlerer Aufgabenstellung getestet Helmut Schellong <var@schellong.biz> - 2026-08-26 18:27 +0200
              Re: ChatGPT mit mittlerer Aufgabenstellung getestet Marc Haber <mh+usenetspam2616@zugschl.us> - 2026-08-26 19:00 +0200
                Re: ChatGPT mit mittlerer Aufgabenstellung getestet Helmut Schellong <var@schellong.biz> - 2026-08-26 22:30 +0200
                Re: ChatGPT mit mittlerer Aufgabenstellung getestet Alexander Schreiber <als@usenet.thangorodrim.de> - 2026-08-27 12:17 +0200
              Re: ChatGPT mit mittlerer Aufgabenstellung getestet Alexander Schreiber <als@usenet.thangorodrim.de> - 2026-08-26 21:06 +0200
                Re: ChatGPT mit mittlerer Aufgabenstellung getestet Helmut Schellong <var@schellong.biz> - 2026-08-26 23:11 +0200
              Re: ChatGPT mit mittlerer Aufgabenstellung getestet Marte Schwarz <marte.schwarz@gmx.de> - 2026-08-26 21:21 +0200
                Re: ChatGPT mit mittlerer Aufgabenstellung getestet Helmut Schellong <var@schellong.biz> - 2026-08-26 23:30 +0200
          Re: ChatGPT mit mittlerer Aufgabenstellung getestet Alexander Schreiber <als@usenet.thangorodrim.de> - 2026-08-26 12:18 +0200
            Re: ChatGPT mit mittlerer Aufgabenstellung getestet Helmut Schellong <var@schellong.biz> - 2026-08-26 22:07 +0200
              Re: ChatGPT mit mittlerer Aufgabenstellung getestet Alexander Schreiber <als@usenet.thangorodrim.de> - 2026-08-27 12:15 +0200
  Re: ChatGPT mit mittlerer Aufgabenstellung getestet Leo Baumann <ib@leobaumann.de> - 2026-08-25 15:03 +0200
    Re: ChatGPT mit mittlerer Aufgabenstellung getestet Helmut Schellong <var@schellong.biz> - 2026-08-25 15:43 +0200
      Re: ChatGPT mit mittlerer Aufgabenstellung getestet Heinz Schmitz <sch@example.invalid> - 2026-08-26 08:25 +0200
    Re: ChatGPT mit mittlerer Aufgabenstellung getestet Andreas Bockelmann <xotzil@gmx.de> - 2026-08-25 15:42 +0200

csiph-web