podes crear un GUID

en un modulo de clase pone.....
'------------------------------------------------------------------
'Clase para generar GUID                                (20/Abr/98)
'
'Código extraido de la Knowledge Base de Microsoft:
'HOWTO: Use CoCreateGUID API to Generate a GUID with VB
'Article ID: Q176790
'------------------------------------------------------------------
Option Explicit

Private Type GUID
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(0 To 7) As Byte
End Type

Private Declare Function CoCreateGuid Lib "OLE32.DLL" _
                        (pGuid As GUID) As Long

Const S_OK = 0 ' return value from CoCreateGuid

Public Function GetGUID() As String
    Dim lResult As Long
    Dim lguid As GUID
    Dim MyguidString As String
    Dim MyGuidString1 As String
    Dim MyGuidString2 As String
    Dim MyGuidString3 As String
    Dim DataLen As Integer
    Dim StringLen As Integer
    Dim i As Integer

    On Error GoTo error_olemsg

    lResult = CoCreateGuid(lguid)

    If lResult = S_OK Then
        MyGuidString1 = Hex$(lguid.Data1)
        StringLen = Len(MyGuidString1)
        DataLen = Len(lguid.Data1)
        MyGuidString1 = LeadingZeros(2 * DataLen, StringLen) _
            & MyGuidString1 'First 4 bytes (8 hex digits)

        MyGuidString2 = Hex$(lguid.Data2)
        StringLen = Len(MyGuidString2)
        DataLen = Len(lguid.Data2)
        MyGuidString2 = LeadingZeros(2 * DataLen, StringLen) _
            & Trim$(MyGuidString2) 'Next 2 bytes (4 hex digits)

        MyGuidString3 = Hex$(lguid.Data3)
        StringLen = Len(MyGuidString3)
        DataLen = Len(lguid.Data3)
        MyGuidString3 = LeadingZeros(2 * DataLen, StringLen) _
            & Trim$(MyGuidString3) 'Next 2 bytes (4 hex digits)

        MyguidString = MyGuidString1 & "-" & MyGuidString2 & "-" & _
                       MyGuidString3 & "-"

        For i = 0 To 7
            MyguidString = MyguidString & _
                Format$(Hex$(lguid.Data4(i)), "00")
        Next
        'MyGuidString contains last 8 bytes of Guid (16 hex digits)
        GetGUID = MyguidString
    Else
        GetGUID = "00000000-0000-0000-0000000000000000" ' return zeros if 
function unsuccessful
    End If

    Exit Function

error_olemsg:
    MsgBox "Error " & Str(Err) & ": " & Error$(Err)
    GetGUID = "00000000-0000-0000-0000000000000000"
    Exit Function

End Function

Private Function LeadingZeros(ExpectedLen As Integer, ActualLen As Integer) As 
String
    LeadingZeros = String$(ExpectedLen - ActualLen, "0")
End Function

despues para usar la clase en algun formulario o modulo....

Private Sub cmdGenGUID_Click()
    'Creamos una instancia de la clase
    Dim tGuid As New cGUID

    'Asignamos el número generado, en este ejemplo lo asignamos a un Label
    msgbox tGuid.GetGUID

    'Destruimos la referencia al objeto
    Set tGuid = Nothing
End Sub


Espero te sirva 

Saludos


  ----- Original Message ----- 
  From: Pata del Santo 
  To: vbusers List Member 
  Sent: Tuesday, September 11, 2007 5:09 PM
  Subject: [vbusers] Encriptar


  Podrías obtener el número de un campo autonumérico y luego encriptarlo.
  O bien utilizar GetTempFileName y luego encriptarlo.
  Pata.




------------------------------------------------------------------------------
  De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Carlos S. 
Villalba
  Enviado el: martes, 11 de septiembre de 2007 19:33
  Para: vbusers List Member
  Asunto: [vbusers] Encriptar


  Perdon, no le cambie el asunto al mail.

   

  _______________________________

  Sebastián Villalba

  Award Support. S.R.L.

  [EMAIL PROTECTED]

  Tel/Fax: 4541-0503 y lineas rotativas

  _______________________________

   


------------------------------------------------------------------------------

  De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Carlos S. 
Villalba
  Enviado el: Martes, 11 de Septiembre de 2007 02:28 p.m.
  Para: vbusers List Member
  Asunto: [vbusers] BinaryReader

   

  Que tal gente!!

              Necesito una pequeña ayuda, necesito generar un numero de 16 
digitos, encriptarlo y guardarlo. Previamente debo verificar que ese numero no 
exista en la base de datos (esto ultimo no es el problema), la consulta es la 
siguiente: ¿que me recomiendan para generar el numero y luego encriptarlo?, yo 
actualmente estoy utilizando una funcion "casera", pero el problema es que me 
generar casi siempre el mismo numero, y cuando estoy comparando si existe o no, 
para generar un solo numero termino llendo como 5 o 6 veces contra la base de 
datos. Me encontre con muchas clases que encriptan, pero necesito antes de 
encriptar, generar el numero de una manera aleatoria y efectiva. Una manera que 
se me ocurre y aun no la he probado es utilizar los numeros de la fecha actual 
(por ej: 11092007) y la hora incluyendo los milisegundos, y luego de alguna 
manera, mezclar esos numeros y de ahí generar un hash. Como se les ocurre que 
pueda mezclar los numeros?, desde ya muchas gracias.

  Saludos!

   

   

  _______________________________

  Sebastián Villalba

  Award Support. S.R.L.

  [EMAIL PROTECTED]

  Tel/Fax: 4541-0503 y lineas rotativas

  _______________________________

   

   

Responder a