Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[LAMBDA] CRYPT
#1
CRYPT

Beschreibung:
Verschlüsselt oder entschlüsselt einen Text mit Schlüssel

Syntax:
=CRYPT(Text;Schlüssel;verschlüsseln)

Beispiel:
=CRYPT("Das ist zu verschlüsseln";"This is a passphrase";1) ergibt: x©¼s²Æµp»ÈsÆÄ´¶ d¼Æ®¿¯
=CRYPT("x©¼s²Æµp»ÈsÆÄ´¶ d¼Æ®¿¯";"This is a passphrase";0) ergibt: Das ist zu verschlüsseln

Code:
=LAMBDA(c;k;x;LET(
e;SEQUENZ(LÄNGE( c));f;CODE(TEIL(c;e;1))-32;
l;WECHSELN(k;" ";);m;LÄNGE(l);n;CODE(TEIL(l;REST(e-1;m)+1;1))-32;
TEXTVERKETTEN(;;ZEICHEN(REST(f+n*(1-2*x);224)+32))))


Anmerkungen:
Hier findet nur die nackte Ver- und Entschlüsselung eines Bezugs oder Texts statt. Wünschenswert wäre natürlich die Verschlüsselung eines Excel-Ranges als Text, toll z.B. für einen E-Mail-Text. Verminderte Sicherheit besteht dadurch, dass ein bloßes Falschschreiben des Schlüssels noch zu lesbarer Entschlüsselung führen kann. Sonst hätten die einzelnen Schlüsselzeichen-Codes iterativ voneinander abhängig gemacht werden müssen, was eine Iterationseinstellung nötig machen würde. Daher kommt alles auf den Gebrauch eines guten Schlüssels an, der selbst lang und verschlüsselt sein sollte (Ascii 32-255 nötig, wie auch beim Text). Im LAMBDA()-Code finden in der 2. Zeile Text-Berechnungen statt, in der 3. Zeile Schlüssel-Berechnungen und in der 4. Zeile die Ver-/Entschlüsselung.

Ich hatte zuerst ohne das manuelle 3. Argument formuliert, aber bei jener "Automatik" bestand die Gefahr, dass das Schlüsselwort durch geschicktes Manipulieren herausgekommen wäre!


Angehängte Dateien
.xlsx   crypt.xlsx (Größe: 19,83 KB / Downloads: 3)
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • PIVPQ
Antworten Top
#2
=LAMBDA(c;k;x;LET( 
d;WENN(SPALTEN( c)*ZEILEN( c)>1;MATRIXZUTEXT(WENN(c="";"";c);1);c); 
e;SEQUENZ(LÄNGE(d));f;CODE(TEIL(d;e;1))-32; 
l;WECHSELN(k;" ";);n;CODE(TEIL(l;REST(e-1;LÄNGE(l))+1;1))-32; 
TEXTVERKETTEN(;;ZEICHEN(REST(f+n*(1-2*x);224)+32))))


ist die Erweiterung von CRYPT auf einen Range 
(vielen Dank an MS für MATRIXZUTEXT; damit erst ist die Funktion sprach/regionsunabhängig).

Der zurück entschlüsselte Range wird jedoch, da ich wegen angestrebtem .xlsx kein =AUSWERTEN() verwenden kann, als 

={"a".1;"b".3}

zurückgegeben, nicht gleich als

a 1
b 3

Man muss den Range somit manuell dann (aufgrund AUSWERTEN-Verzichts) nacheinander
a) als Inhalte einfügen - Werte
b) mit F2-Enter dynamisch in die Zellen füllen

Ich denke, dass diese Schritte akzeptabel sind (oder sein können), wenn man bedenkt, dass man durchaus größere Arrays verschlüsselt als Text z.B. in E-Mails überführen kann.
_______________________

Wer mit .xlsm oder .xlsb arbeiten kann, kann es sich aber mit der bloßen Erweiterung um AUSWERTEN wie folgt gemütlich machen:

=LAMBDA(c;k;x;LET( 
d;WENN(SPALTEN( c)*ZEILEN( c)>1;MATRIXZUTEXT(WENN(c="";"";c);1);c); 
e;SEQUENZ(LÄNGE(d));f;CODE(TEIL(d;e;1))-32; 
l;WECHSELN(k;" ";);n;CODE(TEIL(l;REST(e-1;LÄNGE(l))+1;1))-32; 
AUSWERTEN(TEXTVERKETTEN(;;ZEICHEN(REST(f+n*(1-2*x);224)+32)))))


Wird diese Funktion in einer .xlsx nicht abgespeichert, klappt sie auch dort (also flüchtig). Vorsicht: Arbeit sichern wegen Absturzgefahr bei Auto-Speichern.


Angehängte Dateien
.xlsx   crypt.Range.xlsx (Größe: 20,15 KB / Downloads: 4)
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • PIVPQ
Antworten Top
#3
Moin,

sehr schön :-)

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste