Bueno, no sabía si publicar esto en el foro de VB o en este, al final lo pongo en este y si no está algun moderador de acuerdo que lo mueva que me es indiferente.
Pues me gustaría saber cual de estos dos tipos de encriptación XOR es el más fuerte:
Public Sub EncryptByte(ByteArray() As Byte, Optional Key As String)
Dim Offset As Long
Dim ByteLen As Long
Dim ResultLen As Long
Dim CurrPercent As Long
Dim NextPercent As Long
'Set the new key if one was provided
If (Len(Key) > 0) Then Me.Key = Key
'Get the size of the source array
ByteLen = UBound(ByteArray) + 1
ResultLen = ByteLen
'Loop thru the data encrypting it with
'simply XOR´ing with the key
For Offset = 0 To (ByteLen - 1)
ByteArray(Offset) = ByteArray(Offset) Xor m_Key(Offset Mod m_KeyLen)
'Update the progress if neccessary
If (Offset >= NextPercent) Then
CurrPercent = Int((Offset / ResultLen) * 100)
NextPercent = (ResultLen * ((CurrPercent + 1) / 100)) + 1
RaiseEvent Progress(CurrPercent)
End If
Next
'Make sure we return a 100% progress
If (CurrPercent <> 100) Then RaiseEvent Progress(100)
End Sub
Private Function XOREncryption(ByVal sStr As String, ByVal sKey As String) As String
Dim i As Long
For i = 1 To Len(sStr)
DoEvents
XOREncryption = XOREncryption & Chr(Asc(Mid(sKey, IIf(i Mod Len(sKey) <> 0, i Mod Len(sKey), Len(sKey)), 1)) Xor Asc(Mid(sStr, i, 1)))
Next i
End Function
Ya sé que uno encripta un array de bytes y el otro una String, pero eso es lo de menos pues podría adaptarlos los dos para que encriptasen Strings o Arrays de Bytes...la cuestion es cual es más recomendable?
A mi me parece que el primero, pero no se la verdad...que opinais vosotros?
Weno, espero respuestas y saludos
