Miren este codigo:
(vb.net)
Dim DATOS As New DESCryptoServiceProvider 'CREO EL OBJETO QUE ME PROPORCIONA UNA KEY Y UNA IV
Dim KEYSTRING As String
Dim Key As Byte() = DATOS.Key 'GUARDO EN UNA VARIABLE, LA KEY GENERADA AL AZAR
KEYSTRING = uni.GetString(Key)'TRANSFORMO ESA KEY A STRING
MsgBox(KEYSTRING) 'MUESTRO LA KEY, Y SON COMO SIMBOLOS CHINOS :P (TODO BIEN)
'AHORA GRABO LA KEY EN UN ARCHIVO
Dim FF% = FreeFile()
FileOpen(FF, "C:\prueba.kkk", OpenMode.Append)
PrintLine(FF, KEYSTRING)
FileClose(FF)
'AHORA LEO LA KEY DEL MISMO ARCHIVO
Dim FFa% = FreeFile()
FileOpen(FF, "C:\prueba.kkk", OpenMode.Input)
Dim keyleida$ = ""
Do While Not EOF(FF)
keyleida = LineInput(FF)
Loop
FileClose(FFa)
MsgBox(keyleida) 'AHORA MUESTRO LA KEY LEIDA Y LO QUE LEYÓ ES: "????"
' AHORA CHEQUEO SI SON IGUALES...
If KEYSTRING <> keyleida Then
MsgBox("Son Distintas")
Else
MsgBox("Son iguales")
End If
Obviamente que da error.. dice que son distintas...
Entro al archivo, y lo que grabó es: ????
en vez de grabar esas key rara..
Es como que al momento de grabar... esta grabando mal.....
Alguien me sugiere algo????
Algun otro metodo para grabar?
Miren lo que hice:
Dim uni As New UnicodeEncoding()
Dim KEYDE1 As Integer = 0
Dim DATOS As New DESCryptoServiceProvider
Dim FIN As Boolean = False
Dim i As Integer = 0
While FIN = False
i = (i + 1)
FIN = True
Try
KEYDE1 &= 1
DATOS.Key = uni.GetBytes(KEYDE1)
Catch ex As ArgumentException
FIN = False
End Try
If i = 501 Then
MsgBox("501 y no encontre nada...")
FIN = True
End If
End While
MsgBox("Opcion: " & i & "Valor: " & KEYDE1)
Todo eso, en resumen, va probando que "numero" es compatible con la KEY que puede tener dentro...
lo que ahgo, es probar con un FOR y darle 501 posibilidades...
primero prueba con: 1
despues con : 11
despues con: 111
(por ahora todoss errores)
despues con: 1111
Y AHÍ ANDA!!!..
Por lo tanto, la key puede ser: 1111
Yo puedo establecer que mi key sea por ejemplo: 9654 y no va a haber problemas con esribir esa key en el archivo...
Peroooooooooooooooo obviamente que no va a tener la misma seguridad que escribir ese codigo extraño...
Si no encuentran solucion de como lograr escribir en un archivo esa KEY... tendré que utilizar este metodo...
Pero por favor.. alguien sabe como grabar en un archivo, una key generada por un DESCryptoServiceProvider ????????????
Pego aquí la misma pregunta que hice en otro foro...
Citargrabar en un archivo, una KEY de DESCryptoServiceProvider, (la que se crea automatica para cifrar) no esta permitido.. o sea... te escribe: "????" y da error.. porque en realidad esa no es la KEY...
Saben como hago para poder grabar en un archivo, la key??? cual es el metodo???
si transformo una key que esta en un Byte() a un String y lo muestro con un msgbox.. me muestra bien la key... es como letras chinas... pero si a ese String, lo grabo en un .txt y luego lo leo desde el archivo y lo muestro.. el valor es: ???? y no es la key....
Necesito grabar y recuperar la key original..
Perfecto gente..
Encontre la manera...
Dim UNICODE As New UnicodeEncoding()
Dim DATOS As New DESCryptoServiceProvider 'aca va a estar la KEY y el IV aleatorios
Dim xxx As String = UNICODE .GetString(DATOS.Key) 'guardo en el String XXX la key en UNICODE
'ahora la grabo en mi .txt en UNICODE
Dim sw As New IO.StreamWriter("c:\prueba.txt", True, System.Text.Encoding.Unicode)
sw.WriteLine(xxx)
sw.Close()
'ahora la leo en unicode...
Dim sr As New IO.StreamReader("c:\prueba.txt")
Dim keyleida As String
keyleida = sr.ReadLine()
MsgBox(keyleida)
sr.Close()
Y en el MSGBOX ese, va a aparecer la KEY en Unicode a la perfeccion!!!..
COn un IF pueden comprar si son iguales XXX y keyleida... y verán que son iguales!!