ALLEGED RC4
Publicado por Mario (4 intervenciones) el 15/01/2009 21:56:26
Hola amigos del foro
soy nuevo en delphi y trate de traducir este pseudocodigo en delphi y no lo logro
sera que pueden ayudarme?
esto Pseudocódigo encontre en este direccion
http://www.impuestos.gov.bo/Facturacion/EspAllegedRC4.pdf
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 FUNCION
Gracias
soy nuevo en delphi y trate de traducir este pseudocodigo en delphi y no lo logro
sera que pueden ayudarme?
esto Pseudocódigo encontre en este direccion
http://www.impuestos.gov.bo/Facturacion/EspAllegedRC4.pdf
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 FUNCION
Gracias
Valora esta pregunta


0