Funcion en C sharp para convertir de decimal a hexagecimal existe

20/07/2007 - 22:58 por Jorge .. | Informe spam
Ante todo gracias por la colaboracion a luis miguel,y a Aitziber
tengo un problema necesito crear esta funcion en c sharp pero parece q cada
vez aparece un metodo q no encuentro en c sharp
Ya obtuve la convercion de Asc y Chr tambien las funciones de largo de
cadena mediante length pero hay otras funciones q no las encuentro en c sharp
como convertir un numero a hexadecimal como tambien obtener una subcadena a
partir de una cadena, relleno de cero a la izquierdacuando esta tiene un solo
digito ejempplo F seria 0F y si es 65 no hace nada.
Alguien me puede dar una ayuda en realizar esta operacion le agradeceria
gracias.

FUNCION CifrarMensajeRC4(CADENA Mensaje, CADENA Key ) : CADENA
NUMERO State[256], X = 0, Y = 0, Index1 = 0, Index2 = 0 , NMen, I
CADENA MensajeCifrado = ""
INICIO
PARA I = 0 HASTA 255 HACER
State[I] = I
FIN PARA
PARA I = 0 HASTA 255 HACER
Index2 = ( ObtieneASCII(key[Index1]) + State[I] + Index2 ) MODULO 256
IntercambiaValor( State[I], State[Index2] )
Index1 = (Index1 + 1) MODULO LargoCadena(Key)
FIN PARA
PARA I = 0 HASTA LargoCadena(Mensaje)-1 HACER
X = (X + 1) MODULO 256
Y = (State[X] + Y) MODULO 256
IntercambiaValor( State[X] , State[Y] )
NMen = ObtieneASCII(Mensaje[I]) XOR State[(State[X] + State[Y]) MODULO 256]
MensajeCifrado = MensajeCifrado + "-" +
RellenaCero(ConvierteAHexadecimal(NMen))
FIN PARA
RETORNAR ObtieneSubCadena(MensajeCifrado, 1, LargoCadena(MensajeCifrado) - 1);
FIN FUCTION
 

Leer las respuestas

#1 RFOG
21/07/2007 - 11:37 | Informe spam
En Fri, 20 Jul 2007 22:58:04 +0200, Jorge ..
escribió:

Ante todo gracias por la colaboracion a luis miguel,y a Aitziber
tengo un problema necesito crear esta funcion en c sharp pero parece q
cada
vez aparece un metodo q no encuentro en c sharp
Ya obtuve la convercion de Asc y Chr tambien las funciones de largo de
cadena mediante length pero hay otras funciones q no las encuentro en c
sharp
como convertir un numero a hexadecimal como tambien obtener una
subcadena a
partir de una cadena, relleno de cero a la izquierdacuando esta tiene un
solo
digito ejempplo F seria 0F y si es 65 no hace nada.
Alguien me puede dar una ayuda en realizar esta operacion le agradeceria
gracias.




¿Por qué no te lees un poco la documentación del string y de las cadenas
de formateo?

http://msdn2.microsoft.com/es-es/library/362314fe(VS.80).aspx
http://msdn2.microsoft.com/es-es/li...tem.string(VS.80).aspx
http://msdn2.microsoft.com/es-es/li...ng_members(VS.80).aspx
http://msdn2.microsoft.com/es-es/library/txafckwd(VS.80).aspx
http://msdn2.microsoft.com/es-es/library/427bttx3(VS.80).aspx

FUNCION CifrarMensajeRC4(CADENA Mensaje, CADENA Key ) : CADENA
NUMERO State[256], X = 0, Y = 0, Index1 = 0, Index2 = 0 , NMen, I
CADENA MensajeCifrado = ""
INICIO
PARA I = 0 HASTA 255 HACER
State[I] = I
FIN PARA
PARA I = 0 HASTA 255 HACER
Index2 = ( ObtieneASCII(key[Index1]) + State[I] + Index2 ) MODULO 256
IntercambiaValor( State[I], State[Index2] )
Index1 = (Index1 + 1) MODULO LargoCadena(Key)
FIN PARA
PARA I = 0 HASTA LargoCadena(Mensaje)-1 HACER
X = (X + 1) MODULO 256
Y = (State[X] + Y) MODULO 256
IntercambiaValor( State[X] , State[Y] )
NMen = ObtieneASCII(Mensaje[I]) XOR State[(State[X] + State[Y]) MODULO
256]
MensajeCifrado = MensajeCifrado + "-" +
RellenaCero(ConvierteAHexadecimal(NMen))
FIN PARA
RETORNAR ObtieneSubCadena(MensajeCifrado, 1, LargoCadena(MensajeCifrado)
- 1);
FIN FUCTION



Esto no te va a funcionar en C# si operas con char. En C# un char es un
valor unicode, con lo que es equivalente al wchar_t del C++, es decir, son
dos bytes. Por lo tanto el resultado de esas operaciones no va a ser el
deseado, sobre todo si el resultado se lo vas a pasar a algún otro lado
que no sea tu mismo programa en C#.

Tienes que convertir el string a una cadena de bytes (del tipo
System.Byte).

Usa

Encoding::UTF8->GetString(m_recBuffer,4,m_recBuffer[1]);

para convertir una cadena de bytes a un string y

Encoding::UTF8.GetBytes

para lo contrario. Mira la documentación.

Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
No tenemos más derecho a consumir felicidad sin producirla, que a consumir
riqueza sin producirla.

Preguntas similares