Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.sci.electronics > #369013 > unrolled thread
| Started by | Helmut Schellong <var@schellong.biz> |
|---|---|
| First post | 2026-08-25 12:57 +0200 |
| Last post | 2026-08-25 15:42 +0200 |
| Articles | 11 on this page of 31 — 9 participants |
Back to article view | Back to de.sci.electronics
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 Helmut Schellong <var@schellong.biz> - 2026-08-27 15:29 +0200
Re: ChatGPT mit mittlerer Aufgabenstellung getestet Alexander Schreiber <als@usenet.thangorodrim.de> - 2026-08-27 18:19 +0200
Re: ChatGPT mit mittlerer Aufgabenstellung getestet Helmut Schellong <var@schellong.biz> - 2026-08-27 20:24 +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 Helmut Schellong <var@schellong.biz> - 2026-08-27 15:20 +0200
Re: ChatGPT mit mittlerer Aufgabenstellung getestet Alexander Schreiber <als@usenet.thangorodrim.de> - 2026-08-27 18:23 +0200
Re: ChatGPT mit mittlerer Aufgabenstellung getestet Helmut Schellong <var@schellong.biz> - 2026-08-27 21:38 +0200
Re: ChatGPT mit mittlerer Aufgabenstellung getestet Alexander Schreiber <als@usenet.thangorodrim.de> - 2026-08-28 21:57 +0200
KI mit mittlerer Aufgabenstellung getestet - Bewertungen, Anmerkungen Helmut Schellong <var@schellong.biz> - 2026-08-29 14:49 +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
Page 2 of 2 — ← Prev page 1 [2]
| From | Helmut Schellong <var@schellong.biz> |
|---|---|
| Date | 2026-08-26 22:07 +0200 |
| Message-ID | <116nh26$15on4$1@solani.org> |
| In reply to | #369025 |
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
[toc] | [prev] | [next] | [standalone]
| From | Alexander Schreiber <als@usenet.thangorodrim.de> |
|---|---|
| Date | 2026-08-27 12:15 +0200 |
| Message-ID | <slrn11903hg.2luu.als@mordor.angband.thangorodrim.de> |
| In reply to | #369034 |
Helmut Schellong <var@schellong.biz> wrote:
> 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.
Bitte was? Du kommst auf ... sehr seltsame Metriken die beeindruckend
nichtssagend sind. Datenmenge in /etc hier bei verschiedenen Systemen:
8.4MB, 5.4MB, 17MB, 15MB, 45MB, 5.8MB, 11MB, 9MB, 4.7MB. Fünf verschiedene
Hardware-Plattformen, 2 verschiedene Unix-Systeme. Was sagen diese Zahlen?
Nichts brauchbares.
Und zu "verwässert": Unix SVR3 und FreeBSD sind ... sehr verschiedene
Systeme, schon weil da Jahrzehnte Entwicklung dazwischen liegen.
> chatgpt.com
Oh, oh ...
>================================================================================================================================
>
> #!/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.
Was bitte soll dieser Unfug? Kryptographie verschlafen? Und wenn das
"der Verschleierung" dienen soll: Dir ist klar, das der verwendete
Algorithmus in der Ausgabedatei von gpg steht? Ansonsten: je nach
Angriffsszenario gilt https://xkcd.com/538/
Man liest sich,
Alex.
--
"Opportunity is missed by most people because it is dressed in overalls and
looks like work." -- Thomas A. Edison
[toc] | [prev] | [next] | [standalone]
| From | Helmut Schellong <var@schellong.biz> |
|---|---|
| Date | 2026-08-27 15:20 +0200 |
| Message-ID | <116pdjm$16mei$1@solani.org> |
| In reply to | #369051 |
Alexander Schreiber wrote on 27.08.2026 12:15:
> Helmut Schellong <var@schellong.biz> wrote:
>> 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.
>
> Bitte was? Du kommst auf ... sehr seltsame Metriken die beeindruckend
> nichtssagend sind. Datenmenge in /etc hier bei verschiedenen Systemen:
> 8.4MB, 5.4MB, 17MB, 15MB, 45MB, 5.8MB, 11MB, 9MB, 4.7MB. Fünf verschiedene
> Hardware-Plattformen, 2 verschiedene Unix-Systeme. Was sagen diese Zahlen?
> Nichts brauchbares.
Welche Datenmenge?
Ich sprach hingegen von Dateimenge.
Dateimenge beschreibt die in /etc befindlichen Dateien, nach Aufgaben.
Es gibt unter FreeBSD bestimmte Konfigurations-Dateien nicht, die jedoch
unter SystemV vorhanden sind - und umgekehrt.
> Und zu "verwässert": Unix SVR3 und FreeBSD sind ... sehr verschiedene
> Systeme, schon weil da Jahrzehnte Entwicklung dazwischen liegen.
>
>> chatgpt.com
>
> Oh, oh ...
>
>> ================================================================================================================================
>>
>> #!/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.
>
> Was bitte soll dieser Unfug? Kryptographie verschlafen? Und wenn das
> "der Verschleierung" dienen soll: Dir ist klar, das der verwendete
> Algorithmus in der Ausgabedatei von gpg steht? Ansonsten: je nach
> Angriffsszenario gilt https://xkcd.com/538/
Ich weiß jetzt nicht mehr, was Du eigentlich willst.
Du schreibst semantisch außerordentlich widersprüchlich.
Ich werde kein von einer KI generiertes Skript direkt verwenden - blind schon mal gar nicht!
Das sagte ich im Thread bereits.
Ich bin doch nicht bescheuert!
Ich würde auch das Gnu-Kommando 'gpg' nicht verwenden, aus mehreren Gründen.
Die man-page dazu sagt mir, daß ich dieses Kommando nicht brauche und sogar
gar nicht gebrauchen will und die Abhängigkeit davon keinesfalls haben will!
Allein der zusätzliche Aufwand ist entbehrlich.
Gegen Chiffren aus openssl habe ich prinzipiell nichts.
Wie lautet denn das Subject hier? Da steht was von Test einer KI.
Die Verschleierung _allein_ durch die Wahl von Steuerzeichen ist kostenlos.
Deshalb lasse ich mir diesen Nullaufwand gefallen.
Immerhin handelt es sich um Backup-Dateien, die beliebig lange im Internet
verweilen könnten, mit ihren ohne Verschleierung eventuell verräterischen Dateinamen.
Ich teilte bereits im Thread mit, daß ich seit Monaten ein selbst entwickeltes Skript
erfolgreich verwende.
Lediglich die Kommandos 'glabel' und 'df' benötige ich von extern.
Keines davon muß nach Installation des OS nachträglich besorgt und installiert werden.
Alle anderen sind in die verwendete Shell eingebaut - auch mehrere Chiffren.
Ich wäre ja bescheuert, würde ich mein eigenes, erprobtes Skript
nicht ausschließlich weiter verwenden.
Sämtliche Testausgaben von KIs werde ich garantiert nicht als Werkzeug in Praxis verwenden.
Auch nicht nach Anpassungen, die diese Skripte einwandfrei verwendbar machten.
Mein Skript und mein eigener Interpreter sind eben insgesamt haushoch überlegen.
--
Mit freundlichen Grüßen
Helmut Schellong
[toc] | [prev] | [next] | [standalone]
| From | Alexander Schreiber <als@usenet.thangorodrim.de> |
|---|---|
| Date | 2026-08-27 18:23 +0200 |
| Message-ID | <slrn1190p4k.758o.als@mordor.angband.thangorodrim.de> |
| In reply to | #369055 |
Helmut Schellong <var@schellong.biz> wrote:
> Alexander Schreiber wrote on 27.08.2026 12:15:
>> Helmut Schellong <var@schellong.biz> wrote:
>>>
>>> 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.
>>
>> Bitte was? Du kommst auf ... sehr seltsame Metriken die beeindruckend
>> nichtssagend sind. Datenmenge in /etc hier bei verschiedenen Systemen:
>> 8.4MB, 5.4MB, 17MB, 15MB, 45MB, 5.8MB, 11MB, 9MB, 4.7MB. Fünf verschiedene
>> Hardware-Plattformen, 2 verschiedene Unix-Systeme. Was sagen diese Zahlen?
>> Nichts brauchbares.
>
> Welche Datenmenge?
> Ich sprach hingegen von Dateimenge.
*seufz* Ok, mein Fehler, falsch gelesen. Immer noch eine .. nicht sehr
sinnvolle Metrik.
> Dateimenge beschreibt die in /etc befindlichen Dateien, nach Aufgaben.
> Es gibt unter FreeBSD bestimmte Konfigurations-Dateien nicht, die jedoch
> unter SystemV vorhanden sind - und umgekehrt.
Siehe unten: FreeBSD ist kein SystemV und ausserhalb historischer Setups
wirst Du auch kein aktuelles SystemV finden heutzutage.
>> Und zu "verwässert": Unix SVR3 und FreeBSD sind ... sehr verschiedene
>> Systeme, schon weil da Jahrzehnte Entwicklung dazwischen liegen.
Man liest sich,
Alex.
--
"Opportunity is missed by most people because it is dressed in overalls and
looks like work." -- Thomas A. Edison
[toc] | [prev] | [next] | [standalone]
| From | Helmut Schellong <var@schellong.biz> |
|---|---|
| Date | 2026-08-27 21:38 +0200 |
| Message-ID | <116q3nf$17hil$1@solani.org> |
| In reply to | #369062 |
Alexander Schreiber wrote on 27.08.2026 18:23: > Helmut Schellong <var@schellong.biz> wrote: >> Alexander Schreiber wrote on 27.08.2026 12:15: >>> Helmut Schellong <var@schellong.biz> wrote: >>>> >>>> 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. >>> >>> Bitte was? Du kommst auf ... sehr seltsame Metriken die beeindruckend >>> nichtssagend sind. Datenmenge in /etc hier bei verschiedenen Systemen: >>> 8.4MB, 5.4MB, 17MB, 15MB, 45MB, 5.8MB, 11MB, 9MB, 4.7MB. Fünf verschiedene >>> Hardware-Plattformen, 2 verschiedene Unix-Systeme. Was sagen diese Zahlen? >>> Nichts brauchbares. >> >> Welche Datenmenge? >> Ich sprach hingegen von Dateimenge. > > *seufz* Ok, mein Fehler, falsch gelesen. Immer noch eine .. nicht sehr > sinnvolle Metrik. > >> Dateimenge beschreibt die in /etc befindlichen Dateien, nach Aufgaben. >> Es gibt unter FreeBSD bestimmte Konfigurations-Dateien nicht, die jedoch >> unter SystemV vorhanden sind - und umgekehrt. > > Siehe unten: FreeBSD ist kein SystemV und ausserhalb historischer Setups > wirst Du auch kein aktuelles SystemV finden heutzutage. Ich habe sie noch - habe sie aufgehoben, seit den 1980ern und 1990ern. Vor FreeBSD war ich sehr auf SCO (Santa Cruz Operation) fixiert. Die hatten ihre Systeme für Privatleute Royalty-Free an einen Importeur abgegeben. Von dem erhielt ich die für wenig Geld - immerhin inklusive Development-System. Die ersten C++ hatten den Code in C umgewandelt (mit sehr vielen Klammerpaaren) und kompilierten mittels C-Compiler. Die Datei-Endung für C++ war 'datei.C'. Als symbolische Links aufkamen, hatten die das komplette System mittels zehntausender Symlinks in den User-Bereich gelinkt. Ich hatte von SCO Unixware, Netware, OpenUnix8, mehrere OpenServer, und SCO-Unix386-SysV (1988). Das letztgenannte hatte mein Arbeitgeber für über 3000 DM gekauft. Dateinamen durften dort maximal 14 Zeichen lang sein. Der C-Compiler 32bit war von Microsoft. cc wie auch cl waren damals ziemlich fehlerbehaftet. Ich hatte die etwa 50 Disketten 5¼" nach 3½ umgemodelt, die Images könnte ich noch haben. http://docsrv.sco.com/en/Navpages/index.html http://docsrv.sco.com/cgi-bin/man?mansearchword=/usr/man2/html.ADM/mount.ADM.html&mansection= http://docsrv.sco.com/cgi-bin/man?mansearchword=cc&mansection=&lang=de -- Mit freundlichen Grüßen Helmut Schellong
[toc] | [prev] | [next] | [standalone]
| From | Alexander Schreiber <als@usenet.thangorodrim.de> |
|---|---|
| Date | 2026-08-28 21:57 +0200 |
| Message-ID | <slrn1193q1m.cs5b.als@frodo.angband.thangorodrim.de> |
| In reply to | #369067 |
Helmut Schellong <var@schellong.biz> wrote:
> Alexander Schreiber wrote on 27.08.2026 18:23:
>>
>> Siehe unten: FreeBSD ist kein SystemV und ausserhalb historischer Setups
>> wirst Du auch kein aktuelles SystemV finden heutzutage.
>
> Ich habe sie noch - habe sie aufgehoben, seit den 1980ern und 1990ern.
Fällt unter historisch. ;-)
> Vor FreeBSD war ich sehr auf SCO (Santa Cruz Operation) fixiert.
> Die hatten ihre Systeme für Privatleute Royalty-Free an einen Importeur abgegeben.
> Von dem erhielt ich die für wenig Geld - immerhin inklusive Development-System.
Mir ist Ende der 1990er mal ein Coherent zugelaufen. Unix ohne Netzwerk, wer
Coherent damals mit Netzwerk wollte, musste extra zahlen - das fand ich schon
damals sehr seltsam. Zu der Zeit liefen im Studentennetz die Router schon mit
Linux ...
> Die ersten C++ hatten den Code in C umgewandelt (mit sehr vielen Klammerpaaren) und
> kompilierten mittels C-Compiler.
Naja, umgewandelt - die ersten C++ "Compiler" waren halt als Präprozessor für den
C-Compiler implementiert. Da war C++ aber auch noch ganz massiv einfacher als heute.
> Die Datei-Endung für C++ war 'datei.C'.
>
> Als symbolische Links aufkamen, hatten die das komplette System mittels zehntausender
> Symlinks in den User-Bereich gelinkt.
>
> Ich hatte von SCO Unixware, Netware, OpenUnix8, mehrere OpenServer, und SCO-Unix386-SysV (1988).
> Das letztgenannte hatte mein Arbeitgeber für über 3000 DM gekauft.
> Dateinamen durften dort maximal 14 Zeichen lang sein.
> Der C-Compiler 32bit war von Microsoft.
> cc wie auch cl waren damals ziemlich fehlerbehaftet.
Oh ja, kommerzielles Unix, gerade aus der Zeit, war teilweise echt
grauslig.
Man liest sich,
Alex.
--
"Opportunity is missed by most people because it is dressed in overalls and
looks like work." -- Thomas A. Edison
[toc] | [prev] | [next] | [standalone]
| From | Helmut Schellong <var@schellong.biz> |
|---|---|
| Date | 2026-08-29 14:49 +0200 |
| Subject | KI mit mittlerer Aufgabenstellung getestet - Bewertungen, Anmerkungen |
| Message-ID | <116ukgd$1abav$1@solani.org> |
| In reply to | #369062 |
Wie der Betreff es kundtut, wurden die KI getestet, um Bewertungen
zu deren Ausgaben abgeben zu können.
Insbesondere wurden den KI in der Aufgabenstellung absichtlich viele Freiheiten
gelassen, um festzustellen, wie die KI darauf reagieren.
Es war nie beabsichtigt, die Ausgaben der KI als (angepaßtes!) Werkzeug zu verwenden.
Wegen der belassenen Freiheiten sind die Skripte logischerweise auch nicht so
maßgeschneidert geworden, wie es erforderlich ist.
Es existiert seit Monaten ein mehrfach erprobtes Skript, das zudem besser
geeignet ist, als es von einer KI je geliefert werden kann.
Die getesteten KI Copilot und ChatGPT haben beide ein brauchbares Skript abgeliefert.
Das heißt, die Skripte würden nach einigen Anpassungen, die hpts. wegen der belassenen
Freiheiten erforderlich geworden sind, sehr wahrscheinlich funktionieren.
Das Skript von Copilot kommt mir mehr entgegen, als das von ChatGPT.
Das kann auch daran liegen, daß ich Copilot bisher wesentlich häufiger besuchte.
Ein Detail ist wissenschaftlich interessant:
ChatGPT hatte zwecks Entschlüsselung Arg2 den Inhalt '-qm7' gegeben (-).
Copilot hat den Inhalt 'd' gewählt.
. "Das zweite Arg soll mit einem geeigneten Zeichen eine Entschlüsselung anzeigen."
. "Arg2 soll hier nur das eine Entschlüsselungs-Zeichen enthalten."
Mit dem Hinweis des zweiten Satzes wählte auch ChatGPT 'd'.
Der erste Satz ist tatsächlich nicht eindeutig genug!
Copilot hat eine Eingabe von einzelnen Zeichen per 'read' vorgesehen, für den Key.
Für alle Krypto-Algo ein und denselben Key.
ChatGPT handelt gleich wirkend mittels des Kommandos 'gpg' (GnuPG).
Ich kann beides nicht akzeptieren, besonders nicht das komplexe Kommando.
-----
Ich will mindestens 6 Keys allerhöchster Qualität als Konstanten
mit Skript-Eignung im Skript haben:
. K1='@T4,?`Nfd:+8j;w*pVI-^JBH[{Y$SaxWAiz]ck!U}s6r7Q)5_v"EXKD0L\2<3yqO'
. K2='Ve%UFRYKpSbo9;!~5vMT*&Bdz.\-^_:4CHNr(0)n1/wx8QDElI$WPyis|>ga{j[k'
. K3='G3K^J1o6y9!_4;7]|:DThL*x.FYO[gCfzqI5a%$8bu+"m\Re@A,&v/?-XZBwQrnP'
. K4='Oq(Z"f#~EIgw_3)zC+?\GHj5rQM2SN,x]s`pXJv{yutc[AkiF7.U^dLe1%TWV6bl'
Sicherheitsbedenken gibt es hierzu gar nicht.
Jeder Verschlüsselungsvorgang soll seinen eigenen unterschiedlichen Key haben.
Die von den KI ausgewählten Chiffren könnten verwendet werden.
Logischerweise verwende ich jedoch diejenigen Algorithmen, die in die
verwendete Shell eingebaut oder als Executable stets verfügbar sind.
Bevorzugt werden Strom-Chiffren, bei den kryptographischen Algorithmen.
Beide KI generieren Dateinamen wie 'dokument.pdf.qm7.sha3_256' für einen Hash.
Das paßt mir gar nicht; es ist u.a. unnötig unbequem.
Viel besser ist ein >>Dateiinhalt wie:
ubin.tar.ehuu 18537592 0d3e8f87923c78a17f9d4ce65f20617b085f569cf96d4787241395cf91a0ad02 202607112058.38
u.tar.ehu 7470516224 66a5bbcdd84498e500491f8ae575ec18f7858746a716574e1aed8a6adc8f00f4 202607130038.34
home.tar.ehu 5186626220 7f42487e8b5ba6e65e0f14f0004753d7fd8f2bbb4881d750f85ecd45e6ccde83 202607130039.17
tmp.tar.ehu 6264413528 cebbac031dbc627cf3f627a41c6dbd07528392a67937a4a46ad20a17a75f85ef 202607130042.58
Die vorstehenden Daten sind inzwischen veraltet.
Beide KI verwenden nicht das vorteilhafte Shell-Kommando 'shift', wegen des optionalen Arguments.
ChatGPT schreibt:
Wenn jemand sowohl
dokument.pdf.qm7
als auch
dokument.pdf.qm7.sha3_256
manipulieren kann, kann er auch den Hash neu berechnen. Für ein Backup im Internet wäre deshalb
eine digitale Signatur bzw. ein MAC zusätzlich sinnvoll. Der reine SHA3-256-Hash schützt insbesondere
gegen Übertragungs- und Speicherkorruption, nicht gegen einen Angreifer, der beide Dateien verändern kann.
-----
Hier ist die KI unlogisch.
Alle Hashes sind ausschließlich auf meinem PC, beim Skript, in der einen hash-Datei.
Dort wird das alles auf 2.HDD, MemCard, und ins Internet abgesichert.
Beide KI verwenden fleißig:
. for ((i=0; i<${#SEQUENCE}; i++)); do
In der Korn-Shell lernte ich (( math )) $(( math )) $( ) kennen.
In Verbindung mit 'for' wird jedoch die Mathe nicht von links nach rechts
abgearbeitet, sondern immer wieder in den Schleifenkörper gesprungen.
Ich finde das doof.
Besser finde ich eine solche zusätzliche Schleife:
. [ for Name ] [ from a ] [ by i ] [ to b ] repeat
. do
. Liste
. done
-----
. df -hT "$od" | { readl; readl Z; } && { nop $Z; [ $, -eq 7 ]; } && {
. for 7 - typ - - av - dir in $Z
. do break; done
. [ "$typ" == tmpfs -a av -ge 25 -a "$dir/" == "$od" ] && ram=1
. }
Auch vorstehende for-Struktur-Schleife ist sehr nützlich.
Korn-Shell:
http://osr507doc.xinuos.com/cgi-bin/man?mansearchword=ksh&mansection=C&lang=de
Aufgabenstellung:
==================================================================================================================
Nachfolgend wird eine Programmieraufgabe beschrieben.
Aufgabenstellung:
Ein Skript für das Shell-Programm bash soll hergestellt werden.
Dieses Skript soll jeweils eine Datei variabel verschlüsseln oder entschlüsseln.
Das Skript soll 2 oder optional 3 Argumente entgegen nehmen.
Das erste Argument soll die zu bearbeitende Datei angeben.
Das zweite Arg soll 1 bis 6 Zeichen angeben, {
die die Verschlüsselungs-Algorithmen kennzeichnen
und gleichzeitig die Reihenfolge ihrer Verwendung anzeigen.
Jeder Algorithmus kann mehr als 1-mal angegeben werden.
Diese 1 bis 6 Zeichen sollen als Endung mit Punkt vorne an den Dateinamen (Arg1)
des nun verschlüsselten Inhalts der Datei angehängt werden.
Von diesem Inhalt soll ein Hash sha3_256 genommen und aufbewahrt werden.
Diese Backup-Inhalte sind für die Aufbewahrung im Internet beabsichtigt.
}
Es sollen 3 Algorithmen zur Auswahl vorhanden sein.
Mindestens 2 der 3 Algorithmen sollen kryptographische Qualität besitzen.
Die Algorithmen sollen Argumente für eine Input-Datei und eine Output-Datei entgegen nehmen.
Das zweite Arg soll mit einem geeigneten Zeichen eine Entschlüsselung anzeigen.
Arg2 soll hier nur das eine Entschlüsselungs-Zeichen enthalten.
Das erste Arg enthält hierbei den Dateinamen mit der speziellen Endung aus 1 bis 6 Zeichen.
Diese 1 bis 6 Zeichen sollen zur internen Steuerung verwendet werden.
Vor dem Entschlüsselungsvorgang soll der zugehörige Hash auf Gleichheit geprüft werden.
Optional kann links als erstes Arg ein wählbares Arbeitsverzeichnis angegeben werden.
Die bisherigen Arg1 und Arg2 werden dadurch zu Arg2 und Arg3.
Jemand, der den Dateinamen des verschlüsselten Inhalts betrachtet, soll durch die
dort angegebenen 1 bis 6 Zeichen der Endung nicht die verwendeten Algorithmen erkennen können.
Es soll hier folglich eine Verschleierung wirken.
Der Aufwand dieser Verschleierung soll wegen relativer Unwichtigkeit 'kostenlos' gehalten werden.
==================================================================================================================
Copilot:
==================================================================================================================
#!/usr/bin/env bash
set -euo pipefail
# ------------------------------------------------------------
# konfigurierbare Zuordnung "verschleierter" Zeichen -> Algorithmen
# mind. 2 kryptographisch, 1 optional nicht-kryptographisch
#
# Wir verwenden hier:
# X -> AES-256-CBC (OpenSSL, symmetrisch, kryptographisch)
# 7 -> CHACHA20 (OpenSSL, symmetrisch, kryptographisch)
# _ -> gzip (Kompression, nicht kryptographisch)
#
# Die Zeichen X,7,_ verraten die Algorithmen nicht direkt.
# ------------------------------------------------------------
# Pfad zu openssl und gzip
OPENSSL_BIN=openssl
GZIP_BIN=gzip
usage() {
cat <<EOF
Usage:
Verschlüsseln:
$0 [arbeitsverzeichnis] <datei> <seq>
<seq> = 1..6 Zeichen aus {X,7,_}, Reihenfolge = Reihenfolge der Algorithmen
Ergebnis: <datei>.<seq> und Hash-Datei <datei>.<seq>.sha3
Entschlüsseln:
$0 [arbeitsverzeichnis] <datei.muster> d
<datei.muster> = Dateiname mit Endung .<seq>
'd' = Entschlüsselungsmodus
Vor Entschlüsselung wird Hash aus <datei>.<seq>.sha3 geprüft.
Beispiele:
$0 geheim.txt X7_
$0 geheim.txt.X7_ d
$0 /tmp geheim.txt X7_
EOF
exit 1
}
# ------------------------------------------------------------
# Algorithmus-Funktionen: jeweils in/out-Datei
# ------------------------------------------------------------
algo_X_encrypt() {
local in="$1" out="$2" pass="$3"
"$OPENSSL_BIN" enc -aes-256-cbc -pbkdf2 -salt \
-in "$in" -out "$out" -pass pass:"$pass"
}
algo_X_decrypt() {
local in="$1" out="$2" pass="$3"
"$OPENSSL_BIN" enc -d -aes-256-cbc -pbkdf2 \
-in "$in" -out "$out" -pass pass:"$pass"
}
algo_7_encrypt() {
local in="$1" out="$2" pass="$3"
"$OPENSSL_BIN" enc -chacha20 -pbkdf2 -salt \
-in "$in" -out "$out" -pass pass:"$pass"
}
algo_7_decrypt() {
local in="$1" out="$2" pass="$3"
"$OPENSSL_BIN" enc -d -chacha20 -pbkdf2 \
-in "$in" -out "$out" -pass pass:"$pass"
}
algo__encrypt() {
local in="$1" out="$2"
"$GZIP_BIN" -c "$in" > "$out"
}
algo__decrypt() {
local in="$1" out="$2"
gunzip -c "$in" > "$out"
}
# ------------------------------------------------------------
# Hilfsfunktionen
# ------------------------------------------------------------
calc_sha3() {
local file="$1" hashfile="$2"
"$OPENSSL_BIN" dgst -sha3-256 "$file" > "$hashfile"
}
check_sha3() {
local file="$1" hashfile="$2"
if [ ! -f "$hashfile" ]; then
echo "Fehler: Hash-Datei '$hashfile' fehlt." >&2
exit 1
fi
local current stored
current=$("$OPENSSL_BIN" dgst -sha3-256 "$file")
stored=$(cat "$hashfile")
if [ "$current" != "$stored" ]; then
echo "Fehler: Hash-Prüfung fehlgeschlagen (Integrität verletzt)." >&2
exit 1
fi
}
apply_encrypt_sequence() {
local infile="$1" seq="$2" outfile="$3" pass="$4"
local tmp_in="$infile"
local tmp_out
for ((i=0; i<${#seq}; i++)); do
local c="${seq:i:1}"
tmp_out="$(mktemp)"
case "$c" in
X) algo_X_encrypt "$tmp_in" "$tmp_out" "$pass" ;;
7) algo_7_encrypt "$tmp_in" "$tmp_out" "$pass" ;;
_) algo__encrypt "$tmp_in" "$tmp_out" ;;
*)
echo "Unbekanntes Algorithmus-Zeichen: '$c'" >&2
rm -f "$tmp_out"
exit 1
;;
esac
# nächster Schritt: tmp_out wird zum neuen tmp_in
if [ "$tmp_in" != "$infile" ]; then
rm -f "$tmp_in"
fi
tmp_in="$tmp_out"
done
mv "$tmp_in" "$outfile"
}
apply_decrypt_sequence() {
local infile="$1" seq="$2" outfile="$3" pass="$4"
local tmp_in="$infile"
local tmp_out
# Entschlüsselung in umgekehrter Reihenfolge
for ((i=${#seq}-1; i>=0; i--)); do
local c="${seq:i:1}"
tmp_out="$(mktemp)"
case "$c" in
X) algo_X_decrypt "$tmp_in" "$tmp_out" "$pass" ;;
7) algo_7_decrypt "$tmp_in" "$tmp_out" "$pass" ;;
_) algo__decrypt "$tmp_in" "$tmp_out" ;;
*)
echo "Unbekanntes Algorithmus-Zeichen: '$c'" >&2
rm -f "$tmp_out"
exit 1
;;
esac
if [ "$tmp_in" != "$infile" ]; then
rm -f "$tmp_in"
fi
tmp_in="$tmp_out"
done
mv "$tmp_in" "$outfile"
}
# ------------------------------------------------------------
# Argumente auswerten (inkl. optionalem Arbeitsverzeichnis)
# ------------------------------------------------------------
if [ "$#" -lt 2 ] || [ "$#" -gt 3 ]; then
usage
fi
workdir="."
file_arg=""
seq_or_flag=""
if [ "$#" -eq 3 ]; then
workdir="$1"
file_arg="$2"
seq_or_flag="$3"
else
file_arg="$1"
seq_or_flag="$2"
fi
cd "$workdir"
# ------------------------------------------------------------
# Modus bestimmen: Verschlüsseln vs. Entschlüsseln
# ------------------------------------------------------------
if [ "$seq_or_flag" = "d" ]; then
# Entschlüsselung
enc_file="$file_arg"
if [ ! -f "$enc_file" ]; then
echo "Fehler: Datei '$enc_file' nicht gefunden." >&2
exit 1
fi
# Dateiname und Sequenz aus Endung extrahieren:
# erwartet: name.<seq>
base="${enc_file%.*}"
seq="${enc_file##*.}"
if [ -z "$seq" ] || [ "${#seq}" -gt 6 ]; then
echo "Fehler: ungültige Sequenz in Dateiendung." >&2
exit 1
fi
hashfile="${enc_file}.sha3"
check_sha3 "$enc_file" "$hashfile"
# Passphrase abfragen (für kryptographische Algorithmen)
read -r -s -p "Passphrase für Entschlüsselung: " pass
echo
out_file="$base" # ursprünglicher Name ohne .<seq>
apply_decrypt_sequence "$enc_file" "$seq" "$out_file" "$pass"
echo "Entschlüsselt: $out_file"
else
# Verschlüsselung
plain_file="$file_arg"
seq="$seq_or_flag"
if [ ! -f "$plain_file" ]; then
echo "Fehler: Datei '$plain_file' nicht gefunden." >&2
exit 1
fi
if [ -z "$seq" ] || [ "${#seq}" -gt 6 ]; then
echo "Fehler: Sequenz muss 1..6 Zeichen lang sein." >&2
exit 1
fi
# Passphrase abfragen (für kryptographische Algorithmen)
read -r -s -p "Passphrase für Verschlüsselung: " pass
echo
out_file="${plain_file}.${seq}"
apply_encrypt_sequence "$plain_file" "$seq" "$out_file" "$pass"
# Hash des verschlüsselten Inhalts berechnen und speichern
hashfile="${out_file}.sha3"
calc_sha3 "$out_file" "$hashfile"
echo "Verschlüsselt: $out_file"
echo "Hash gespeichert in: $hashfile"
fi
==================================================================================================================
ChatGPT:
==================================================================================================================
#!/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
[toc] | [prev] | [next] | [standalone]
| From | Leo Baumann <ib@leobaumann.de> |
|---|---|
| Date | 2026-08-25 15:03 +0200 |
| Message-ID | <116k3qi$13agk$1@solani.org> |
| In reply to | #369013 |
Am 25.08.2026 um 12:57 schrieb Helmut Schellong: > Ich habe mal zum Test eine genaue und vollständige Aufgabenstellung > formuliert > und diese MS-Copilot vorgelegt: Ich habe mal zum Test die Aufgabe ein Mathematica-Script zu erzeugen, dass aus dem Line-In der Soundkarte das DCF77-Signal zu dekodioeren. Die Aufgabe wurde von ChatGPT gelöst, aber nur nach 10 Maligen zurücksetzen eins Lösungsvorschlage und Neuanforderung. Fürchterlich! www.leobaumann.de/DCF77-Dekodierung.pdf :) -- Public Webspace von Ingenieurbüro Baumann: https://hidrive.ionos.com/share/sc0px3oy7x
[toc] | [prev] | [next] | [standalone]
| From | Helmut Schellong <var@schellong.biz> |
|---|---|
| Date | 2026-08-25 15:43 +0200 |
| Message-ID | <116k65s$13cc9$1@solani.org> |
| In reply to | #369015 |
Leo Baumann wrote on 25.08.2026 15:03: > Am 25.08.2026 um 12:57 schrieb Helmut Schellong: >> Ich habe mal zum Test eine genaue und vollständige Aufgabenstellung formuliert >> und diese MS-Copilot vorgelegt: > > Ich habe mal zum Test die Aufgabe ein Mathematica-Script zu erzeugen, dass aus dem Line-In der Soundkarte das DCF77-Signal zu > dekodioeren. > > Die Aufgabe wurde von ChatGPT gelöst, aber nur nach 10 Maligen zurücksetzen eins Lösungsvorschlage und Neuanforderung. > > Fürchterlich! Wir haben dann beide typische Nachteile einer KI kennengelernt. Ich bemerke auch immer wieder, daß die KI nicht wirklich kreativ sein kann. -- Mit freundlichen Grüßen Helmut Schellong
[toc] | [prev] | [next] | [standalone]
| From | Heinz Schmitz <sch@example.invalid> |
|---|---|
| Date | 2026-08-26 08:25 +0200 |
| Message-ID | <uj1t8lp4scqic0rb8tl4ssh173baajl8ek@4ax.com> |
| In reply to | #369019 |
Helmut Schellong wrote: >> Fürchterlich! >Wir haben dann beide typische Nachteile einer KI kennengelernt. >Ich bemerke auch immer wieder, daß die KI nicht wirklich kreativ sein kann. Das kommt vielleicht erst mit der bezahlten Profi-Version :-). Oder auch nicht. Grüße, H.
[toc] | [prev] | [next] | [standalone]
| From | Andreas Bockelmann <xotzil@gmx.de> |
|---|---|
| Date | 2026-08-25 15:42 +0200 |
| Message-ID | <748d1a7a6be17422b8612eff6f1a8966@wxp-nb-01.mouse.local> |
| In reply to | #369015 |
Leo Baumann schrieb:
> Am 25.08.2026 um 12:57 schrieb Helmut Schellong:
>> Ich habe mal zum Test eine genaue und vollständige Aufgabenstellung
>> formuliert
>> und diese MS-Copilot vorgelegt:
>
> Ich habe mal zum Test die Aufgabe ein Mathematica-Script zu erzeugen, dass
> aus dem Line-In der Soundkarte das DCF77-Signal zu dekodioeren.
>
> Die Aufgabe wurde von ChatGPT gelöst, aber nur nach 10 Maligen zurücksetzen
> eins Lösungsvorschlage und Neuanforderung.
>
> Fürchterlich!
>
> www.leobaumann.de/DCF77-Dekodierung.pdf
>
> :)
>
Ich kann ähnliches berichten: Im Carport habe ich einen in der Zeitfolge
einstellbaren Eltako Treppenlichtautomaten gehabt, der auf Bewegungsmelder 3
Minuten Licht m,achen sollte, auf Taster ebenfalls, aber auch 2 stundne
Dauerlicht, wenn der Taster länger als 2 Sekunden festgehalten wird. Inkl.
Bestätigungsflackern zum ein-und Ausschalten.
Der Eltako wich nun einem Shelly Pro2, weil ich vom Haus aus den
Bewegungsmelder abschaltbar haben wollt, weil wegen Wind und Carportdach und
Blechwand und dauernd Wiedereinschalten des Lichts. (mal flapsig ausgetdrückt)
Da ich keinerlei Ahnung von Jacascript habe und mich auhc gar nicht in
Javascript und Shellyprogrammierung einarbeiten wollte, habe ich detailliert
beschrieben was ich wollte. Das habe ich Gemini und ChatGPT zu fressen
gegeben. Nach dem 10. Versuch bei Gemini habe ich aufgegeben, nach 10
Versuchen hatte ChatGPT ein brauchbares Skript produziert, das nun seit
einem knappen Jahr zufriedenstellend das macht was es soll.
--
Mit freundlichen Grüßen
Andreas Bockelmann
[toc] | [prev] | [standalone]
Page 2 of 2 — ← Prev page 1 [2]
Back to top | Article view | de.sci.electronics
csiph-web