Ayuda para pasar de c# a VB.

18/02/2006 - 01:09 por Carlos | Informe spam
¿Alguien me puede ayudar a pasar este codigo a VB?

Es un ejemplo de encriptar / desencriptar de la web del Guille.

SymmetricAlgorithm saEnc;

private void btnEncriptar_Click(object sender, System.EventArgs e)

{

byte[] dataorg = Encoding.Default.GetBytes(txtTextoOriginal.Text);

saEnc = SymmetricAlgorithm.Create(cmbAlgoritmos.SelectedItem.ToString());

ICryptoTransform ct = saEnc.CreateEncryptor();

txtKeyGenerado.Text = Encoding.Default.GetString(saEnc.Key);

txtIVGenerado.Text = Encoding.Default.GetString(saEnc.IV);

MemoryStream ms = new MemoryStream();

CryptoStream cs = new CryptoStream(ms,ct,CryptoStreamMode.Write);

cs.Write(dataorg,0,dataorg.Length);

cs.FlushFinalBlock();

txtTextoEncrypado.Text = Encoding.Default.GetString(ms.ToArray());

lblTextoEncLen.Text = txtTextoEncrypado.Text.Length.ToString();

}

private void btnDesencriptar_Click(object sender, System.EventArgs e)

{

SymmetricAlgorithm saDEnc =
SymmetricAlgorithm.Create(cmbAlgoritmos.SelectedItem.ToString());

byte[] textoEncriptado =
Encoding.Default.GetBytes(txtTextoEncrypado.Text);

MemoryStream ms = new MemoryStream(textoEncriptado);

ICryptoTransform cto = saDEnc.CreateDecryptor(saEnc.Key, saEnc.IV);

MemoryStream mso = new MemoryStream();

CryptoStream cso = new CryptoStream(mso,cto,CryptoStreamMode.Write);

cso.Write(ms.ToArray(),0,ms.ToArray().Length);

cso.FlushFinalBlock();

txtTextoDesecriptado.Text = Encoding.Default.GetString(mso.ToArray());

}

Preguntas similare

Leer las respuestas

#1 Carlos
18/02/2006 - 01:52 | Informe spam
¡Ya me funciona!:

Public Function Encriptar(ByVal TextoOriginal As String) As String

Dim algoritmo As String

algoritmo = "3DES"

Dim dataorg As Byte() = Encoding.Default.GetBytes(TextoOriginal)

asEnc = SymmetricAlgorithm.Create(algoritmo)

Dim ct As ICryptoTransform = asEnc.CreateEncryptor()

'MsgBox("Key: " & Encoding.Default.GetString(asEnc.Key))

'MsgBox("IV: " & Encoding.Default.GetString(asEnc.IV))

Dim ms As MemoryStream = New MemoryStream()

Dim cs As CryptoStream = New CryptoStream(ms, ct, CryptoStreamMode.Write)

cs.Write(dataorg, 0, dataorg.Length)

cs.FlushFinalBlock()

Encriptar = Encoding.Default.GetString(ms.ToArray())

End Function

Public Function Desencriptar(ByVal TextoEncriptado As String) As String

Dim algoritmo As String

algoritmo = "3DES"

Dim saDEnc As SymmetricAlgorithm = SymmetricAlgorithm.Create(algoritmo)

Dim te1 As Byte() = Encoding.Default.GetBytes(textoencriptado)

Dim ms As MemoryStream = New MemoryStream(te1)

Dim cto As ICryptoTransform = saDEnc.CreateDecryptor(asEnc.Key, asEnc.IV)

Dim mso As MemoryStream = New MemoryStream()

Dim cso As CryptoStream = New CryptoStream(mso, cto, CryptoStreamMode.Write)

cso.Write(ms.ToArray(), 0, ms.ToArray().Length)

cso.FlushFinalBlock()

Desencriptar = Encoding.Default.GetString(mso.ToArray())

End Function




Había pensado dejar el Key y el IV fijo por codigo ¿hay algún problema?

Un saludo,

Carlos.




"Carlos" escribió en el mensaje
news:Oa9QL%
¿Alguien me puede ayudar a pasar este codigo a VB?

Es un ejemplo de encriptar / desencriptar de la web del Guille.

SymmetricAlgorithm saEnc;

private void btnEncriptar_Click(object sender, System.EventArgs e)

{

byte[] dataorg = Encoding.Default.GetBytes(txtTextoOriginal.Text);

saEnc = SymmetricAlgorithm.Create(cmbAlgoritmos.SelectedItem.ToString());

ICryptoTransform ct = saEnc.CreateEncryptor();

txtKeyGenerado.Text = Encoding.Default.GetString(saEnc.Key);

txtIVGenerado.Text = Encoding.Default.GetString(saEnc.IV);

MemoryStream ms = new MemoryStream();

CryptoStream cs = new CryptoStream(ms,ct,CryptoStreamMode.Write);

cs.Write(dataorg,0,dataorg.Length);

cs.FlushFinalBlock();

txtTextoEncrypado.Text = Encoding.Default.GetString(ms.ToArray());

lblTextoEncLen.Text = txtTextoEncrypado.Text.Length.ToString();

}

private void btnDesencriptar_Click(object sender, System.EventArgs e)

{

SymmetricAlgorithm saDEnc =
SymmetricAlgorithm.Create(cmbAlgoritmos.SelectedItem.ToString());

byte[] textoEncriptado =
Encoding.Default.GetBytes(txtTextoEncrypado.Text);

MemoryStream ms = new MemoryStream(textoEncriptado);

ICryptoTransform cto = saDEnc.CreateDecryptor(saEnc.Key, saEnc.IV);

MemoryStream mso = new MemoryStream();

CryptoStream cso = new CryptoStream(mso,cto,CryptoStreamMode.Write);

cso.Write(ms.ToArray(),0,ms.ToArray().Length);

cso.FlushFinalBlock();

txtTextoDesecriptado.Text = Encoding.Default.GetString(mso.ToArray());

}



Respuesta Responder a este mensaje
#2 Carlos
18/02/2006 - 01:57 | Informe spam
Falta definir la variable publica en el modulo:

Public asEnc As SymmetricAlgorithm


"Carlos" escribió en el mensaje
news:
¡Ya me funciona!:

Public Function Encriptar(ByVal TextoOriginal As String) As String

Dim algoritmo As String

algoritmo = "3DES"

Dim dataorg As Byte() = Encoding.Default.GetBytes(TextoOriginal)

asEnc = SymmetricAlgorithm.Create(algoritmo)

Dim ct As ICryptoTransform = asEnc.CreateEncryptor()

'MsgBox("Key: " & Encoding.Default.GetString(asEnc.Key))

'MsgBox("IV: " & Encoding.Default.GetString(asEnc.IV))

Dim ms As MemoryStream = New MemoryStream()

Dim cs As CryptoStream = New CryptoStream(ms, ct, CryptoStreamMode.Write)

cs.Write(dataorg, 0, dataorg.Length)

cs.FlushFinalBlock()

Encriptar = Encoding.Default.GetString(ms.ToArray())

End Function

Public Function Desencriptar(ByVal TextoEncriptado As String) As String

Dim algoritmo As String

algoritmo = "3DES"

Dim saDEnc As SymmetricAlgorithm = SymmetricAlgorithm.Create(algoritmo)

Dim te1 As Byte() = Encoding.Default.GetBytes(textoencriptado)

Dim ms As MemoryStream = New MemoryStream(te1)

Dim cto As ICryptoTransform = saDEnc.CreateDecryptor(asEnc.Key, asEnc.IV)

Dim mso As MemoryStream = New MemoryStream()

Dim cso As CryptoStream = New CryptoStream(mso, cto,
CryptoStreamMode.Write)

cso.Write(ms.ToArray(), 0, ms.ToArray().Length)

cso.FlushFinalBlock()

Desencriptar = Encoding.Default.GetString(mso.ToArray())

End Function




Había pensado dejar el Key y el IV fijo por codigo ¿hay algún problema?

Un saludo,

Carlos.




"Carlos" escribió en el mensaje
news:Oa9QL%
¿Alguien me puede ayudar a pasar este codigo a VB?

Es un ejemplo de encriptar / desencriptar de la web del Guille.

SymmetricAlgorithm saEnc;

private void btnEncriptar_Click(object sender, System.EventArgs e)

{

byte[] dataorg = Encoding.Default.GetBytes(txtTextoOriginal.Text);

saEnc =
SymmetricAlgorithm.Create(cmbAlgoritmos.SelectedItem.ToString());

ICryptoTransform ct = saEnc.CreateEncryptor();

txtKeyGenerado.Text = Encoding.Default.GetString(saEnc.Key);

txtIVGenerado.Text = Encoding.Default.GetString(saEnc.IV);

MemoryStream ms = new MemoryStream();

CryptoStream cs = new CryptoStream(ms,ct,CryptoStreamMode.Write);

cs.Write(dataorg,0,dataorg.Length);

cs.FlushFinalBlock();

txtTextoEncrypado.Text = Encoding.Default.GetString(ms.ToArray());

lblTextoEncLen.Text = txtTextoEncrypado.Text.Length.ToString();

}

private void btnDesencriptar_Click(object sender, System.EventArgs e)

{

SymmetricAlgorithm saDEnc =
SymmetricAlgorithm.Create(cmbAlgoritmos.SelectedItem.ToString());

byte[] textoEncriptado =
Encoding.Default.GetBytes(txtTextoEncrypado.Text);

MemoryStream ms = new MemoryStream(textoEncriptado);

ICryptoTransform cto = saDEnc.CreateDecryptor(saEnc.Key, saEnc.IV);

MemoryStream mso = new MemoryStream();

CryptoStream cso = new CryptoStream(mso,cto,CryptoStreamMode.Write);

cso.Write(ms.ToArray(),0,ms.ToArray().Length);

cso.FlushFinalBlock();

txtTextoDesecriptado.Text = Encoding.Default.GetString(mso.ToArray());

}







Respuesta Responder a este mensaje
#3 Carlos
18/02/2006 - 12:27 | Informe spam
He hecho las funciones que he publicado en este hilo y el problema me surge
para guardar las claves Key e IV, entiendo que lo normal es guardarlas
dentro del codigo y llamar a la función encriptar y a la función
desencriptar con las mismas claves ¿no?

Pues bien, como veis en el codigo, tengo dos msgbox que muestran key y IV,
pues esto funciona, pero si intento meter el valor de esto en un .text de un
textbox, de un label o en un fichero de texto no va ¿por que?

Un saludo,

Carlos.

"Carlos" escribió en el mensaje
news:
Falta definir la variable publica en el modulo:

Public asEnc As SymmetricAlgorithm


"Carlos" escribió en el mensaje
news:
¡Ya me funciona!:

Public Function Encriptar(ByVal TextoOriginal As String) As String

Dim algoritmo As String

algoritmo = "3DES"

Dim dataorg As Byte() = Encoding.Default.GetBytes(TextoOriginal)

asEnc = SymmetricAlgorithm.Create(algoritmo)

Dim ct As ICryptoTransform = asEnc.CreateEncryptor()

'MsgBox("Key: " & Encoding.Default.GetString(asEnc.Key))

'MsgBox("IV: " & Encoding.Default.GetString(asEnc.IV))

Dim ms As MemoryStream = New MemoryStream()

Dim cs As CryptoStream = New CryptoStream(ms, ct, CryptoStreamMode.Write)

cs.Write(dataorg, 0, dataorg.Length)

cs.FlushFinalBlock()

Encriptar = Encoding.Default.GetString(ms.ToArray())

End Function

Public Function Desencriptar(ByVal TextoEncriptado As String) As String

Dim algoritmo As String

algoritmo = "3DES"

Dim saDEnc As SymmetricAlgorithm = SymmetricAlgorithm.Create(algoritmo)

Dim te1 As Byte() = Encoding.Default.GetBytes(textoencriptado)

Dim ms As MemoryStream = New MemoryStream(te1)

Dim cto As ICryptoTransform = saDEnc.CreateDecryptor(asEnc.Key, asEnc.IV)

Dim mso As MemoryStream = New MemoryStream()

Dim cso As CryptoStream = New CryptoStream(mso, cto,
CryptoStreamMode.Write)

cso.Write(ms.ToArray(), 0, ms.ToArray().Length)

cso.FlushFinalBlock()

Desencriptar = Encoding.Default.GetString(mso.ToArray())

End Function




Había pensado dejar el Key y el IV fijo por codigo ¿hay algún problema?

Un saludo,

Carlos.




"Carlos" escribió en el mensaje
news:Oa9QL%
¿Alguien me puede ayudar a pasar este codigo a VB?

Es un ejemplo de encriptar / desencriptar de la web del Guille.

SymmetricAlgorithm saEnc;

private void btnEncriptar_Click(object sender, System.EventArgs e)

{

byte[] dataorg = Encoding.Default.GetBytes(txtTextoOriginal.Text);

saEnc =
SymmetricAlgorithm.Create(cmbAlgoritmos.SelectedItem.ToString());

ICryptoTransform ct = saEnc.CreateEncryptor();

txtKeyGenerado.Text = Encoding.Default.GetString(saEnc.Key);

txtIVGenerado.Text = Encoding.Default.GetString(saEnc.IV);

MemoryStream ms = new MemoryStream();

CryptoStream cs = new CryptoStream(ms,ct,CryptoStreamMode.Write);

cs.Write(dataorg,0,dataorg.Length);

cs.FlushFinalBlock();

txtTextoEncrypado.Text = Encoding.Default.GetString(ms.ToArray());

lblTextoEncLen.Text = txtTextoEncrypado.Text.Length.ToString();

}

private void btnDesencriptar_Click(object sender, System.EventArgs e)

{

SymmetricAlgorithm saDEnc =
SymmetricAlgorithm.Create(cmbAlgoritmos.SelectedItem.ToString());

byte[] textoEncriptado =
Encoding.Default.GetBytes(txtTextoEncrypado.Text);

MemoryStream ms = new MemoryStream(textoEncriptado);

ICryptoTransform cto = saDEnc.CreateDecryptor(saEnc.Key, saEnc.IV);

MemoryStream mso = new MemoryStream();

CryptoStream cso = new CryptoStream(mso,cto,CryptoStreamMode.Write);

cso.Write(ms.ToArray(),0,ms.ToArray().Length);

cso.FlushFinalBlock();

txtTextoDesecriptado.Text = Encoding.Default.GetString(mso.ToArray());

}











Respuesta Responder a este mensaje
#4 Jesús López
18/02/2006 - 13:23 | Informe spam
No funciona porque la clave y el vector de inicialización son arrays de
bytes, y un textbox muesta una cadena, lo mismo ocurre con el fichero de
texto.

En cuanto a gruardar las claves en el propio código, tengo que advertirte
que no es seguro porque cualquiera podría abrir el ensamblado y encontrar
las claves.


Saludos:

Jesús López
VB MVP



"Carlos" escribió en el mensaje
news:%
He hecho las funciones que he publicado en este hilo y el problema me
surge para guardar las claves Key e IV, entiendo que lo normal es
guardarlas dentro del codigo y llamar a la función encriptar y a la
función desencriptar con las mismas claves ¿no?

Pues bien, como veis en el codigo, tengo dos msgbox que muestran key y IV,
pues esto funciona, pero si intento meter el valor de esto en un .text de
un textbox, de un label o en un fichero de texto no va ¿por que?

Un saludo,

Carlos.

"Carlos" escribió en el mensaje
news:
Falta definir la variable publica en el modulo:

Public asEnc As SymmetricAlgorithm


"Carlos" escribió en el mensaje
news:
¡Ya me funciona!:

Public Function Encriptar(ByVal TextoOriginal As String) As String

Dim algoritmo As String

algoritmo = "3DES"

Dim dataorg As Byte() = Encoding.Default.GetBytes(TextoOriginal)

asEnc = SymmetricAlgorithm.Create(algoritmo)

Dim ct As ICryptoTransform = asEnc.CreateEncryptor()

'MsgBox("Key: " & Encoding.Default.GetString(asEnc.Key))

'MsgBox("IV: " & Encoding.Default.GetString(asEnc.IV))

Dim ms As MemoryStream = New MemoryStream()

Dim cs As CryptoStream = New CryptoStream(ms, ct,
CryptoStreamMode.Write)

cs.Write(dataorg, 0, dataorg.Length)

cs.FlushFinalBlock()

Encriptar = Encoding.Default.GetString(ms.ToArray())

End Function

Public Function Desencriptar(ByVal TextoEncriptado As String) As String

Dim algoritmo As String

algoritmo = "3DES"

Dim saDEnc As SymmetricAlgorithm = SymmetricAlgorithm.Create(algoritmo)

Dim te1 As Byte() = Encoding.Default.GetBytes(textoencriptado)

Dim ms As MemoryStream = New MemoryStream(te1)

Dim cto As ICryptoTransform = saDEnc.CreateDecryptor(asEnc.Key,
asEnc.IV)

Dim mso As MemoryStream = New MemoryStream()

Dim cso As CryptoStream = New CryptoStream(mso, cto,
CryptoStreamMode.Write)

cso.Write(ms.ToArray(), 0, ms.ToArray().Length)

cso.FlushFinalBlock()

Desencriptar = Encoding.Default.GetString(mso.ToArray())

End Function




Había pensado dejar el Key y el IV fijo por codigo ¿hay algún problema?

Un saludo,

Carlos.




"Carlos" escribió en el mensaje
news:Oa9QL%
¿Alguien me puede ayudar a pasar este codigo a VB?

Es un ejemplo de encriptar / desencriptar de la web del Guille.

SymmetricAlgorithm saEnc;

private void btnEncriptar_Click(object sender, System.EventArgs e)

{

byte[] dataorg = Encoding.Default.GetBytes(txtTextoOriginal.Text);

saEnc =
SymmetricAlgorithm.Create(cmbAlgoritmos.SelectedItem.ToString());

ICryptoTransform ct = saEnc.CreateEncryptor();

txtKeyGenerado.Text = Encoding.Default.GetString(saEnc.Key);

txtIVGenerado.Text = Encoding.Default.GetString(saEnc.IV);

MemoryStream ms = new MemoryStream();

CryptoStream cs = new CryptoStream(ms,ct,CryptoStreamMode.Write);

cs.Write(dataorg,0,dataorg.Length);

cs.FlushFinalBlock();

txtTextoEncrypado.Text = Encoding.Default.GetString(ms.ToArray());

lblTextoEncLen.Text = txtTextoEncrypado.Text.Length.ToString();

}

private void btnDesencriptar_Click(object sender, System.EventArgs e)

{

SymmetricAlgorithm saDEnc =
SymmetricAlgorithm.Create(cmbAlgoritmos.SelectedItem.ToString());

byte[] textoEncriptado =
Encoding.Default.GetBytes(txtTextoEncrypado.Text);

MemoryStream ms = new MemoryStream(textoEncriptado);

ICryptoTransform cto = saDEnc.CreateDecryptor(saEnc.Key, saEnc.IV);

MemoryStream mso = new MemoryStream();

CryptoStream cso = new CryptoStream(mso,cto,CryptoStreamMode.Write);

cso.Write(ms.ToArray(),0,ms.ToArray().Length);

cso.FlushFinalBlock();

txtTextoDesecriptado.Text = Encoding.Default.GetString(mso.ToArray());

}















Respuesta Responder a este mensaje
#5 Carlos
18/02/2006 - 22:06 | Informe spam
¿donde las puedo guardar?

Mi idea es hacer una base de datos de usuarios/contraseñas pero con los
campos encriptados.

Carlos.

"Jesús López" escribió en el mensaje
news:
No funciona porque la clave y el vector de inicialización son arrays de
bytes, y un textbox muesta una cadena, lo mismo ocurre con el fichero de
texto.

En cuanto a gruardar las claves en el propio código, tengo que advertirte
que no es seguro porque cualquiera podría abrir el ensamblado y encontrar
las claves.


Saludos:

Jesús López
VB MVP



"Carlos" escribió en el mensaje
news:%
He hecho las funciones que he publicado en este hilo y el problema me
surge para guardar las claves Key e IV, entiendo que lo normal es
guardarlas dentro del codigo y llamar a la función encriptar y a la
función desencriptar con las mismas claves ¿no?

Pues bien, como veis en el codigo, tengo dos msgbox que muestran key y
IV, pues esto funciona, pero si intento meter el valor de esto en un
.text de un textbox, de un label o en un fichero de texto no va ¿por que?

Un saludo,

Carlos.

"Carlos" escribió en el mensaje
news:
Falta definir la variable publica en el modulo:

Public asEnc As SymmetricAlgorithm


"Carlos" escribió en el mensaje
news:
¡Ya me funciona!:

Public Function Encriptar(ByVal TextoOriginal As String) As String

Dim algoritmo As String

algoritmo = "3DES"

Dim dataorg As Byte() = Encoding.Default.GetBytes(TextoOriginal)

asEnc = SymmetricAlgorithm.Create(algoritmo)

Dim ct As ICryptoTransform = asEnc.CreateEncryptor()

'MsgBox("Key: " & Encoding.Default.GetString(asEnc.Key))

'MsgBox("IV: " & Encoding.Default.GetString(asEnc.IV))

Dim ms As MemoryStream = New MemoryStream()

Dim cs As CryptoStream = New CryptoStream(ms, ct,
CryptoStreamMode.Write)

cs.Write(dataorg, 0, dataorg.Length)

cs.FlushFinalBlock()

Encriptar = Encoding.Default.GetString(ms.ToArray())

End Function

Public Function Desencriptar(ByVal TextoEncriptado As String) As String

Dim algoritmo As String

algoritmo = "3DES"

Dim saDEnc As SymmetricAlgorithm = SymmetricAlgorithm.Create(algoritmo)

Dim te1 As Byte() = Encoding.Default.GetBytes(textoencriptado)

Dim ms As MemoryStream = New MemoryStream(te1)

Dim cto As ICryptoTransform = saDEnc.CreateDecryptor(asEnc.Key,
asEnc.IV)

Dim mso As MemoryStream = New MemoryStream()

Dim cso As CryptoStream = New CryptoStream(mso, cto,
CryptoStreamMode.Write)

cso.Write(ms.ToArray(), 0, ms.ToArray().Length)

cso.FlushFinalBlock()

Desencriptar = Encoding.Default.GetString(mso.ToArray())

End Function




Había pensado dejar el Key y el IV fijo por codigo ¿hay algún problema?

Un saludo,

Carlos.




"Carlos" escribió en el mensaje
news:Oa9QL%
¿Alguien me puede ayudar a pasar este codigo a VB?

Es un ejemplo de encriptar / desencriptar de la web del Guille.

SymmetricAlgorithm saEnc;

private void btnEncriptar_Click(object sender, System.EventArgs e)

{

byte[] dataorg = Encoding.Default.GetBytes(txtTextoOriginal.Text);

saEnc =
SymmetricAlgorithm.Create(cmbAlgoritmos.SelectedItem.ToString());

ICryptoTransform ct = saEnc.CreateEncryptor();

txtKeyGenerado.Text = Encoding.Default.GetString(saEnc.Key);

txtIVGenerado.Text = Encoding.Default.GetString(saEnc.IV);

MemoryStream ms = new MemoryStream();

CryptoStream cs = new CryptoStream(ms,ct,CryptoStreamMode.Write);

cs.Write(dataorg,0,dataorg.Length);

cs.FlushFinalBlock();

txtTextoEncrypado.Text = Encoding.Default.GetString(ms.ToArray());

lblTextoEncLen.Text = txtTextoEncrypado.Text.Length.ToString();

}

private void btnDesencriptar_Click(object sender, System.EventArgs e)

{

SymmetricAlgorithm saDEnc =
SymmetricAlgorithm.Create(cmbAlgoritmos.SelectedItem.ToString());

byte[] textoEncriptado =
Encoding.Default.GetBytes(txtTextoEncrypado.Text);

MemoryStream ms = new MemoryStream(textoEncriptado);

ICryptoTransform cto = saDEnc.CreateDecryptor(saEnc.Key, saEnc.IV);

MemoryStream mso = new MemoryStream();

CryptoStream cso = new CryptoStream(mso,cto,CryptoStreamMode.Write);

cso.Write(ms.ToArray(),0,ms.ToArray().Length);

cso.FlushFinalBlock();

txtTextoDesecriptado.Text =
Encoding.Default.GetString(mso.ToArray());

}



















Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida