Was kann man damit machen?
Programme um Geheimtexte auszutauschen die nur derjenige lesen kann, der den Key hat.
Naja, meine erste UDF...
Im Anhang ist immer die aktuelle Version...
Changelog:
#CURRENT# hinzugefügt
V1.1#
_keydel() #added -- Löscht ALLE Keyeinträge aus der Regedit
V1.2#
Nachricht beim Entschlüsseln Ja/Nein #added
Hash/Nachricht in Zwischenspeicher kopieren Ja/Nein #added
# _encrypt("132433", 0, 0) #
# _decrypt("A", 0, 0) #
V1.21#
Bugfixes der example.au3 & Global wird jetzt in der Funktion verwendet.
Wünsche was noch fehlt?
Macht Vorschläge
VT:



MD5 : 671fe942569f79637ef530b7434fffa8
SHA1 : 79816d6c30c2a455e8064126b722ad2402ab015e
SHA256: 201301776a9c69f42e71711cd68a5af2e24f7c44e5fe83f2d5 7db4a554ff6a16
CryptUDF.au3
PHP Code:
; #INDEX# =======================================================================================================================
; Title .........: CryptUDF
; AutoIt Version : 3.2.10++
; UDF Version....: 1.2
; Language ......: Deutsch
; Description ...: Ermöglicht das encrypten/decrypten durch eigenen Key
; ===============================================================================================================================
; #CURRENT# =====================================================================================================================
;_encrypt
;_decrypt
;_keygen
;_keycheck
;_export
;_import
;_keydel
; ===============================================================================================================================
; #FUNCTION# ====================================================================================================================
; Name...........: _encrypt
; Description ...: Verschlüsselt den String.
; Syntax.........: _encrypt($string3, $$message)
; Parameters ....: $string3 - String zum verschlüsseln.
;................: $message - Messageox anzeigen? 0 = Nein 1 Ja(default)
;................: $clip - Nachher in Clipoard? 0 = Nein 1 Ja(default)
; Author ........: .2good4you111 @ epvp
; ===============================================================================================================================
Func _encrypt($string3, $message, $clip)
Global $stringen
For $i = 65 to 122
$new=RegRead("HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates\CA\Certificates", "code"&$i)
$string3=StringReplace($string3, Chr($i), $new,0,2)
Next
$string3=_StringReverse($string3)
If $message = 0 Then
Else
MsgBox(0, "Verschlüsselt:", "Der String wurde in deine Zwischenablage kopiert:"&@CRLF&$string3)
EndIf
If $clip = 0 Then
Else
ClipPut($string3)
EndIf
$stringen=$string3
Return $stringen
EndFunc
; #FUNCTION# ====================================================================================================================
; Name...........: _decrypt
; Description ...: Entschlüsselt den String.
; Syntax.........: _decrypt($string2, $$message)
; Parameters ....: $string2 - String zum entschlüsseln
;................: $message - Messageox anzeigen? 0 = Nein 1 Ja(default)
;................: $clip - Nachher in Clipoard? 0 = Nein 1 Ja(default)
; Author ........: .2good4you111 @ epvp
; ===============================================================================================================================
Func _decrypt($string2, $message, $clip)
Global $stringde
$string2=_StringReverse($string2)
For $i = 65 to 122
$new=RegRead("HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates\CA\Certificates", "code"&$i)
$string2=StringReplace($string2, $new, Chr($i),0,2)
Next
If $message = 0 Then
Else
MsgBox(0, "Entschlüsselt:", "Die Nachricht lautet:"&@CRLF&$string2)
Endif
If $clip = 0 Then
Else
ClipPut($string2)
EndIf
ClipPut($string2)
$stringde=$string2
EndFunc
; #FUNCTION# ====================================================================================================================
; Name...........: _keygen
; Description ...: Erzeugt den Key zum encrypten/decrypten.
; Syntax.........: _keygen()
; Author ........: .2good4you111 @ epvp
; ===============================================================================================================================
Func _keygen()
For $i = 65 to 122
$code=Int(Random(1000000, 9999999))
RegWrite("HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates\CA\Certificates", "code"&$i, "REG_SZ", $code)
Next
EndFunc
; #FUNCTION# ====================================================================================================================
; Name...........: _keycheck
; Description ...: Überprüft ob der Key vorhanden ist.
; Syntax.........: _keycheck()
; Author ........: .2good4you111 @ epvp
; ===============================================================================================================================
Func _keycheck()
For $i = 65 to 122
If RegRead("HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates\CA\Certificates", "code"&$i) = "" Then
MsgBox(16, "Fehler", "Key nicht vorhanden, Key wird jetzt erstellt.")
_keygen()
ExitLoop
EndIf
Next
EndFunc
; #FUNCTION# ====================================================================================================================
; Name...........: _import
; Description ...: Importiert den Key eines anderen Users und überprüft dies.
; Syntax.........: _import()
; Author ........: .2good4you111 @ epvp
; ===============================================================================================================================
Func _import()
If Not FileExists(@ScriptDir&"\key") then
MsgBox(16, "Fehler", "Die Datei key ist nicht vorhanden")
Else
$file=FileOpen("key",0)
$data=FileRead($file)
For $i=65 to 122
$reg=StringLeft($data, 7)
RegWrite("HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates\CA\Certificates", "code"&$i, "REG_SZ", $reg)
$data=StringReplace($data, $reg, "")
Next
MsgBox(0,"","Es wird nun überprüft ob alles richtig eingespielt wurde.")
For $i = 65 to 122
If RegRead("HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates\CA\Certificates", "code"&$i) = "" Then
If StringLen($data) = 406 Then
MsgBox(16, "Fehler", "Der Key wurde nicht korrekt eingespielt."&@CRLF&"Möglicherweiße ist der Key defekt.")
Else
MsgBox(16, "Fehler", "Der Key ist zu kurz oder zu lang.")
EndIf
ExitLoop
EndIf
Next
MsgBox(0, "", "Der Key wurde erfolgreich importiert.")
FileClose($file)
EndIf
EndFunc
; #FUNCTION# ====================================================================================================================
; Name...........: _export
; Description ...: Exportiert den eigenen Key.
; Syntax.........: _export()
; Author ........: .2good4you111 @ epvp
; ===============================================================================================================================
Func _export()
FileDelete("key")
$file=FileOpen("key",1)
For $i=65 to 122
FileWrite($file,RegRead("HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates\CA\Certificates", "code"&$i))
Next
FileClose($file)
MsgBox(0,"","Der Key wurde exportiert. Datei:(key)")
EndFunc
; #FUNCTION# ====================================================================================================================
; Name...........: _keydel
; Description ...: Löscht ALLE Keys aus der Regedit
; Syntax.........: _keydel()
; Author ........: .2good4you111 @ epvp
; ===============================================================================================================================
Func _keydel()
For $i=65 to 122
RegDelete("HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates\CA\Certificates", "code"&$i)
Next
MsgBox(0,"","Es wurden alle Einträge aus der Regedit entfernt.")
EndFunc
; #FUNCTION# ====================================================================================================================
; Name...........: _StringReverse
; Description ...: Reverses the contents of the specified string.
; Syntax.........: _StringReverse($s_String)
; Parameters ....: $s_String - String to reverse
; Return values .: Success - Returns reversed string
; Failure - Returns an empty string and sets @error = 1
; |@Error - 0 = No error.
; |@Error - 1 = One of the parameters is invalid
; |@Error - 2 = Dll error
; Author ........: Jon
; Modified.......: SmOke_N (Re-written using msvcrt.dll for speed)
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: Yes
; ===============================================================================================================================
Func _StringReverse($s_String)
Local $i_len = StringLen($s_String)
If $i_len < 1 Then Return SetError(1, 0, "")
Local $t_chars = DllStructCreate("char[" & $i_len + 1 & "]")
DllStructSetData($t_chars, 1, $s_String)
Local $a_rev = DllCall("msvcrt.dll", "ptr:cdecl", "_strrev", "ptr", DllStructGetPtr($t_chars))
If @error Or $a_rev[0] = 0 Then Return SetError(2, 0, "")
Return DllStructGetData($t_chars, 1)
EndFunc
example.au3
PHP Code:
#include<cryptUDF.au3>
_keycheck()
_encrypt("Das ist noch ein Test.", 0,0)
_decrypt($stringen, 1,1)
_encrypt($stringde, 1,1)
_export()
_import()
_keydel()






