Algoritmo di (de)criptaggio, Idea e lavoro fatto interamente da me

« Older   Newer »
  Share  
Grandebestia
icon10  CAT_IMG Posted on 2/5/2010, 18:39     +1   -1




Oggi mi è venuta in mente un'idea: quella di realizzare un algoritmo per criptare o decryptare stringhe composte sia da lettere che da numeri.
In pratica legge il codice ASCII di ogni lettera o numero, non sostituisce ogni carattere ad un altro ma in base al carattere successivo calcola il codice ASCII da utilizzare. Lo so è difficile da capire, ma se ci sarà bisogno posterò uno schemino circa il funzionamento.
Non ho fatto l'interfaccia grafica perche non mi andava.
SPOILER (click to view)
$string = InputBox ("Programma", "Inserisci una stringa")

$ret_string = char_dist ($string)

$str = code_crypter ($ret_string)

$string_crypt = string_crypter ($str)
MsgBox (0, "Stringa criptata:", $string_crypt)

$dist = char_dist ($string_crypt)

$code = code_decrypter ($dist)

$string_decrypt = string_crypter ($code)
MsgBox (0, "Quello che hai scritto: " & $string, "Da: " & $string_crypt & " A: " & $string_decrypt)
MsgBox (64, "Algoritmo", "L'algoritmo usato è un lavoro di Grandebestia (TGB)")
Func char_dist ($string)
$split = StringSplit ($string, "")
$var_char = 0
$ret_string = ""
Do
$var_char = $var_char +1
$ret_string = $ret_string & $split[$var_char] & "|"
until $var_char = $split[0]
$var_char = 0
$ret_string = ""
Do
$var_char = $var_char +1
$ret_string = $ret_string & asc($split[$var_char]) & "|"
until $var_char = $split[0]
$ret_string = StringLeft ($ret_string, stringlen($ret_string) -1)
Return ($ret_string)
EndFunc

Func string_crypter ($str)
$char = StringSplit ($str, "|")
$var_ch = 0
$return = ""
Do
$var_ch = $var_ch +1
$return = $return & Chr ($char[$var_ch])
Until $var_ch = $char[0]
Return ($return)
EndFunc
Func code_crypter ($ret_string)
$code = StringSplit ($ret_string, "|")
$str = ""
$var_code = 0
Do
$var_code = $var_code +1
if $var_code <> $code[0] Then ;nn è l'ultima
$str = $str & $code[$var_code] + $code[$var_code +1] & "|"
Else
$str = $str & $code[$var_code] *2
EndIf
Until $var_code = $code[0]
Return ($str)
EndFunc

Func code_decrypter ($str)
$asc = StringSplit ($str, "|")
$var_asc = $asc[0]

Local $oper[$asc[0] +1]
$oper[0] = $var_asc
$last = $asc[$var_asc] /2
$oper[$var_asc] = $last
Do
$var_asc = $var_asc -1
$oper[$var_asc] = $asc[$var_asc] - $last
$last = $oper[$var_asc]
Until $var_asc = 1
$fin_string = ""
$var_str = 0
Do
$var_str = $var_str +1
$fin_string = $fin_string & $oper[$var_str] & "|"
Until $var_str = $oper[0]
Return ($fin_string)
EndFunc

Com'è?
 
Top
Kurt_Black_hat 2.0
CAT_IMG Posted on 2/5/2010, 18:48     +1   -1




Veeeery good!
 
Top
Grandebestia
CAT_IMG Posted on 3/5/2010, 17:36     +1   -1




Ho fatto l'interfaccia grafica!

SPOILER (click to view)
#include <guiconstantsex.au3>
#include <guiedit.au3>

$ver = "v1.0"
$gui = GUICreate ("String crypter " & $ver, 300, 260)
GUICtrlCreateLabel ("Inserisci testo:", 10, 10)
$input1 = GUICtrlCreateInput ("", 10, 30, 280, 20)
$radio1 = GUICtrlCreateRadio ("Cripta", 10, 60)
GUICtrlSetState ($radio1, $gui_checked)
$radio2 = GUICtrlCreateRadio ("Decripta", 10, 80)
$cbk1 = GUICtrlCreateCheckbox ("Salva il risultano nella clipboard", 125, 80)
GUICtrlCreateLabel ("Risultato:", 10, 110)
$edit1 = GUICtrlCreateEdit ("String crypter " & $ver & " by Grandebestia (TGB) 2010", 10, 130, 280, 80, 80)
_GUICtrlEdit_SetReadOnly ($edit1, True)
GUICtrlSetFont ($edit1, 10)
$btn1 = GUICtrlCreateButton ("Avvia processo", 10, 220, 280, 30)
GUISetState ()

Do
$msg = GUIGetMsg ()
If $msg = $btn1 Then
$text = GUICtrlRead ($input1)
If $text = "" Or StringLen ($text) = 1 Then
MsgBox (16, "String crypter " & $ver, "Stringa non valida inserire 2 o più caratteri")
ContinueLoop
EndIf
If GUICtrlRead ($radio1) = $gui_checked Then
$dist = char_dist ($text)
$code = code_crypter ($dist)
$string = ret_chr ($code)
GUICtrlSetData ($edit1, $string)
If GUICtrlRead ($cbk1) = $gui_checked Then
ClipPut ($string)
EndIf
Else
$dist = char_dist ($text)
$code = code_decrypter ($dist)
$string = ret_chr ($code)
GUICtrlSetData ($edit1, $string)
If GUICtrlRead ($cbk1) = $gui_checked Then
ClipPut ($string)
EndIf
EndIf
EndIf
until $msg = -3

Func char_dist ($string)
$split = StringSplit ($string, "")
$var_char = 0
$ret_string = ""
Do
$var_char = $var_char +1
$ret_string = $ret_string & $split[$var_char] & "|"
until $var_char = $split[0]
$var_char = 0
$ret_string = ""
Do
$var_char = $var_char +1
$ret_string = $ret_string & asc($split[$var_char]) & "|"
until $var_char = $split[0]
$ret_string = StringLeft ($ret_string, stringlen($ret_string) -1)
Return ($ret_string)
EndFunc

Func ret_chr ($str)
$char = StringSplit ($str, "|")
$var_ch = 0
$return = ""
Do
$var_ch = $var_ch +1
$return = $return & Chr ($char[$var_ch])
Until $var_ch = $char[0]
Return ($return)
EndFunc

Func code_crypter ($ret_string)
$code = StringSplit ($ret_string, "|")
$str = ""
$var_code = 0
Do
$var_code = $var_code +1
if $var_code <> $code[0] Then ;nn è l'ultima
$str = $str & $code[$var_code] + $code[$var_code +1] & "|"
Else
$str = $str & $code[$var_code] *2
EndIf
Until $var_code = $code[0]
Return ($str)
EndFunc

Func code_decrypter ($str)
$asc = StringSplit ($str, "|")
$var_asc = $asc[0]

Local $oper[$asc[0] +1]
$oper[0] = $var_asc
$last = $asc[$var_asc] /2
$oper[$var_asc] = $last
Do
$var_asc = $var_asc -1
$oper[$var_asc] = $asc[$var_asc] - $last
$last = $oper[$var_asc]
Until $var_asc = 1
$fin_string = ""
$var_str = 0
Do
$var_str = $var_str +1
$fin_string = $fin_string & $oper[$var_str] & "|"
Until $var_str = $oper[0]
Return ($fin_string)
EndFunc

²ÜÚÒÓâÕÕÙ…ÜÑÆÔØÊ
 
Top
Gianlu-thebest
CAT_IMG Posted on 3/5/2010, 17:48     +1   -1




g00d
 
Top
Grandebestia
CAT_IMG Posted on 3/5/2010, 17:50     +1   -1




thank u
 
Top
Dragon[ITA]
CAT_IMG Posted on 4/5/2010, 20:33     +1   -1




lol non mi funzia
 
Top
Grandebestia
CAT_IMG Posted on 5/5/2010, 14:53     +1   -1




Perchè non ti funzia???
 
Top
6 replies since 2/5/2010, 18:39   191 views
  Share