Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.sci.electronics > #369034
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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