Zeichenkette verschleiern Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

KHA
Posts: 192
Joined: 21 Aug 2018, 11:11

Zeichenkette verschleiern

05 Jan 2020, 12:11

Hallo,
ich schreibe mit IniWrite und IniRead Strings in einer Ini-Datei. Wie kann ich diese Daten so unkenntlich machen, damit nicht jeder direkt sehen kann, wofür die werte stehen. Mir geht es nicht um komplexe Verschlüsselung.
Die Strings sollen später wieder kenntlich gemacht werden, damit ich die Werte in Script vergleichen kann.

Welche Möglichkeiten gäbe da?
LG

Code: Select all

Post := 1
Name_Post := "BenutzerName"

IniWrite, %Post%, Settings.ini, %Name_Post%, Level
IniRead, BName, Settings.ini, %Name_Post%, Level
MsgBox, % BName
Rohwedder
Posts: 2549
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Zeichenkette verschleiern  Topic is solved

06 Jan 2020, 05:09

Hallo,
vielleicht so etwas?

Code: Select all

q::
Text = Irgendetwas Geheimes
Text := Umkodierung(Text)
MsgBox,% Text
Text := Umkodierung(Text)
MsgBox,% Text
Return
Umkodierung(Text)
{
	Loop, Parse, Text
		Text2 .= Chr(Asc(A_LoopField)^0xFFFF)
	Return Text2
}
KHA
Posts: 192
Joined: 21 Aug 2018, 11:11

Re: Zeichenkette verschleiern

06 Jan 2020, 12:17

Hallo @Rohwedder vielen Dank.
Haargenau das, was ich wollte.

Nun, versuche ich dein Funktion zu verstehen.
Die Schleife geht Buchstabe für Buchstabe durch, Die Funktion Asc() macht daraus ein Nummer und Chr() macht aus der Nummer wieder ein Buchstabe. (mit den Worten eines Laien ausgedrückt).
Doch was macht ^0xFFFF, 0xFFFF ist ein Hexadezimal-zahl und entspricht 65535. Beim ^ Zirkumflex denke ich an Strg.
Rohwedder
Posts: 2549
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Zeichenkette verschleiern

07 Jan 2020, 01:43

Der ^ Operator ist das bitweise exklusive ODER (=XOR) und 0xFFFF entspricht im Binärkode 16 Einsen.
Bei der Operation Nummer^0xFFFF wird Nummer zuerst links mit Nullen auf eine 16-stellige Binärzahl (=4-stellige Hexzahl) ergänzt
und dann alle Binärstellen umgeschaltet d.h.: aus einer Null wird eine Eins und umgekehrt.
Wird das ein zweites Mal gemacht, ist wieder alles wie es vorher war.
Hier:

Code: Select all

Zeichen = A
Loop, 2
{
	MsgBox,% Zahl:=Format("0x{:04X}",Asc(Zeichen))
	MsgBox,% Zahl:=Format("0x{:04X}",Zahl^0xFFFF)
	MsgBox,% Zeichen:=Chr(Zahl)
}
wird aus A ein Hieuh https://unicode-table.com/de/FFBE/ und dann wieder ein A.
KHA
Posts: 192
Joined: 21 Aug 2018, 11:11

Re: Zeichenkette verschleiern

07 Jan 2020, 14:37

Danke für die Erläuterung

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 8 guests