hay algo que hago mal, pero no me doy cuenta que es, al encryptar ba bien, pero luego cuando lo desencrypto algunas letras hacen cualquier cosa y los numeros tambien.
osea pero la palabra "alex" por ejemplo si lo hace bien.
Option Explicit
'#####################################
'# EncryDataXOR by Alexander E. #
'# http://infiernohacker.com #
'# http://artehack.net #
'# v 1.1.0 (c) 2011 #
'#####################################
Const semillafija = "Alexander E." 'valor modificable
'########################################################
'# #
'# ######## ## # ####### ##### # # #
'# # # # # # # # # # #
'# # # # # # # # # # #
'# ######## # # # # ##### ### #
'# # # # # # # # # #
'# # # # # # # # # #
'# ######## # ## ####### # # # #
'# #
'########################################################
Public Function EncryDataXor(ByVal data As String, semilla As Integer) As String
Dim contador As Integer 'variable para contar las letras
Dim ascmod As Integer
Dim ascfinn As Integer
Dim strfin As String
Dim sss As Integer
Dim tyt As String
For contador = 1 To Len(data) 'un for del tamaño de data
tyt = ""
ascmod = Asc(Mid(data, contador, 1)) Xor semilla 'tomamos la letra y le hacemos xor segun la semilla
ascfinn = ascmod Xor (Len(semillafija) + Asc(Mid(semillafija, Len(semillafija) - 1, 1))) 'tomamos el xor anterior y le hacemos otro xor pero con el tamaño de la constante semilla fija mas el ascii de la ultima letra de la semilla fija
For sss = 1 To Len(ascfinn)
tyt = tyt & Chr(Mid(ascfinn, sss, 1))
Next sss
strfin = strfin & tyt & "." ' agarramos el numero que resulto despues de los dos xor transformamos cada cifra en ascii y le agregamos a la variable y con un punto, esto sera el encryptado final
Next contador
EncryDataXor = Mid(strfin, 1, Len(strfin) - 1)
End Function
' ############################################
' # #
' # #### ##### #### #### # # #
' # # # # # # # # # #
' # # # # # # # # # #
' # # # ##### # #### # #
' # # # # # ## # #
' # # # # # # # # #
' # #### ##### #### # # # #
' # #
' ############################################
Public Function DecryDataXor(ByVal data As String, semilla As Integer) As String
Dim sp() As String
Dim sss As Integer
Dim byr As Integer
Dim ascs As String
Dim ascsi As Integer
Dim ascfin As Integer
Dim strfin As String
sp = Split(data, ".", , vbTextCompare)
ReDim Preserve sp(UBound(sp))
For byr = 0 To UBound(sp)
ascs = ""
For sss = 1 To Len(sp(byr))
ascs = ascs & Asc(Mid(sp(byr), sss, 1))
Next sss
ascsi = Val(ascs) Xor (Len(semillafija) + Asc(Mid(semillafija, Len(semillafija) - 1, 1)))
ascfin = ascsi Xor semilla
strfin = strfin & Chr(ascfin)
Next byr
DecryDataXor = strfin
End Function
'##################################################################
'# #
'# ###### ###### ## ## ### # # # #
'# # # # # # # # # # # # # #
'# # # # # # # # # # # # #
'# #### ###### # ## # # # # ####### #
'# # # # # # # # # # #
'# # # # # # # # # # # #
'# #### ###### # # ### ##### ##### # # #
'# #
'##################################################################
Public Function SemillaDataXor(ByVal datos As String) As Integer
Dim suma As Integer
Dim rft As Integer
Dim xtr As Integer
For rft = 1 To Len(datos)
suma = suma + Asc(Mid(datos, rft, 1))
Next rft
For rft = 1 To Len(datos)
xtr = xtr + suma Xor Asc(Mid(datos, rft, 1))
Next rft
xtr = xtr - Asc(Mid(datos, Len(datos) - 1, 1)) Xor Len(datos)
SemillaDataXor = Mid(xtr, 1, 3)
End Function
'##########################################
'# #
'# # # ####### # ###### #
'# # # # # # # #
'# # # # # # # #
'# ######## ####### # ###### #
'# # # # # # #
'# # # # # # #
'# # # ####### ###### # #
'# #
'##########################################
'#'
'#' Use la funcion EncryDataXor para encryptar una palabra (variable "data") y con una contraseña llamada "semilla"
'#' Use la funcion DecryDataXor para desencryptar una palabar (variable "data") y con la misma contraseña
'#' Las contraseñas deben ser pasadas primero por la funcion SemillaDataXor, que la convertira en un numero
'#'
'#' Esta encryptacion tiene doble contraseña, 1° la puesta por el usuario llamada semilla
'#' 2° la puesta en el codigo de fuente llamada semillafija
'#' (c) Alexander E. programado para infiernohacker.com
'#'
'##########################################
gracias.
saludos!