Noviembre 01, 2014, 03:54:16 am

Autor Tema: [C#] Check Sum (CSUM)  (Leído 1182 veces)

0 Usuarios y 1 Visitante están viendo este tema.

liderzor

  • Me das tu IP?
  • *
  • Mensajes: 72
  • Sexo: Masculino
    • Ver Perfil
[C#] Check Sum (CSUM)
« en: Agosto 02, 2012, 05:06:40 pm »
Pues bien he hecho varias preguntas sobre el PMS que ando haciendo pero en este foro nadie me ha ayudado bueeeh s), hago otra pregunta pero es sbre un CSUM que intento saber si lo he hecho bien me gustaria saber solo su opinion de si mi algoritmo esta bueno o no, el Pseudocodigo que dice como es el CSUM esta asi

variables definition:
CSUM, i: integer numbers
CSUMSTR, IO: strings
start
CSUM = 0
For i = 1 to length of IO
IOi = the character at position i in IO
ASCII (IOi) = the ascii value of IOi
CSUM = CSUM + ASCII (IOi)
CSUM = Last Significant Byte of CSUM
next i
CSUMSTR = CSUM converted in hexadecimal string
If length of CSUMSTR = 1 then CSUMSTR = “0” + CSUMSTR
end

la funcion en C segun el manual queda asi...

C FUNCTION FOR CHECKSUM (CSUM) CALCULATION
/* io is a standard ASCIIZ null terminated C string */
void calcsum(char *io, char *hexcsum)
{
int csum=0;
for (; (*io)!=‘\0’; io++)
csum=(csum+(*io)) & 255;
sprintf(hexcsum, “%02.2X”, csum);
}

y pues la funcion que yo hice en C# me quedo asi pero no se si esta mal.

        public string C_CSUM(string _string)
        {
            int checksum = 0;
            string CSUMstr = "";
            foreach (char hello in _string.ToCharArray())
            {
                checksum = checksum + (int)hello;
            }
            int decValue = checksum;
            CSUMstr = decValue.ToString("X");
            if (CSUMstr.Length == 1) { CSUMstr = "0" + CSUMstr; }
            return CSUMstr;
        }

Espero puedan ayudar :)
El Hotelero trabaja como un ginecologo... trabaja donde otro goza...

kicasta

  • Yo vivo en CPH
  • ***
  • Mensajes: 579
    • Ver Perfil
Re:[C#] Check Sum (CSUM)
« Respuesta #1 en: Agosto 03, 2012, 01:50:09 am »
Es una lástima que nadie haya hecho ningún comentario sobre tu PreMenstrual Symdrome. Pero dejando a un lado las bromas fáciles, esto es un foro donde cada cual da su opinión según su tema y su área de experiencia, no un servicio técnico.

En cuanto a este tema, tu código parece hacer lo que el pseudocódigo, excepto la parte del string del hexadecimal. Lo que yo entiendo y puede que me equivoque, es que necesitas convertir chksum a hexadecimal y tomar el string de ese valor. En cualquier caso dudo que tu código compile, pues no conozco ninguna sobrecarga a .ToString();

De todas formas, este método parece ser bastante simple, por lo que podrías usar uno ya implementado en C#

Código: (C#) [Seleccionar]
//http://en.wikipedia.org/wiki/Longitudinal_redundancy_check
 public static byte calculateLRC(byte[] bytes)
        {
            byte LRC = 0x00;
            for (int i = 0; i < bytes.Length; i++)
            {
                LRC = (LRC + bytes[i]) & 0xFF;
            }
            return ((LRC ^ 0xFF) + 1) & 0xFF;
        }

o usar uno de los más usados
http://en.wikipedia.org/wiki/Fletcher%27s_checksum
http://en.wikipedia.org/wiki/Adler-32#Example_implementation
http://en.wikipedia.org/wiki/Computation_of_CRC

En cualquier caso, las implementaciones parecen directas.

Saludos

PS: Usa las etiquetas Code

“When all you have is a hammer, every problem looks like a nail.”


liderzor

  • Me das tu IP?
  • *
  • Mensajes: 72
  • Sexo: Masculino
    • Ver Perfil
Re:[C#] Check Sum (CSUM)
« Respuesta #2 en: Agosto 03, 2012, 01:40:04 pm »
Vaya gracias alguien q almens dice "no se pero respondo algo", hehehe muchas gracias, volviendo al tema pues si el codigo si compila y arroja un resultado, sin embargo no se si la suma que realiza mi codigo es correcta, de todas formas gracias por responder espero encontrar solucion en otro lugar :P si la tengo aportare a la comunidad info sobre este tema, con respecto a los otros algoritmos la verdad no sabria si me funcionaran para la comunicacion entre el dispositivo q antes describi y el PMS q realizo :S, otra pregunta cuando dices "no conosco alguna sobrecargar a .toString();" q quiere decir eso? de sobrecarga hehee
« Última modificación: Agosto 03, 2012, 02:17:09 pm por liderzor »

kicasta

  • Yo vivo en CPH
  • ***
  • Mensajes: 579
    • Ver Perfil
Re:[C#] Check Sum (CSUM)
« Respuesta #3 en: Agosto 04, 2012, 12:34:12 am »
El método ToString que yo conozco de System.Object no recibe parámetros. A menos que lo hayas sobrecargado tú, no debería compilar. Sobrecargar un método es cuando al mismo método para el mismo objeto le modificas la signatura, o sea que tienes varias opciones con distintos parámetros.

En cuanto a que te sirvan los CheckSum listados, supongo que sí, ya que son precisamente eso. El hecho de usarlos o no ya es decisión propia.

Saludos
« Última modificación: Agosto 04, 2012, 12:35:13 am por kicasta »

liderzor

  • Me das tu IP?
  • *
  • Mensajes: 72
  • Sexo: Masculino
    • Ver Perfil
Re:[C#] Check Sum (CSUM)
« Respuesta #4 en: Agosto 06, 2012, 02:32:30 pm »
hehehe pues si, el metodo .ToString si recibe parametros  del formato del nuevo objeto de la cadena aki info http://msdn.microsoft.com/es-es/library/c3s1ez6e.aspx, intentare usar alguno de esos metodos de CSUM a ver si me sale con esos gracasi cualquier cosa estare comentando como me va!

kicasta

  • Yo vivo en CPH
  • ***
  • Mensajes: 579
    • Ver Perfil
Re:[C#] Check Sum (CSUM)
« Respuesta #5 en: Agosto 06, 2012, 05:01:51 pm »
 :yonofui: jejeje

Juro que llevo casi 8 años programando con C# y siempre les había pasado por encima a las sobrecargas de ToString y desde hace un tiempo tampoco tengo MVS. Pero me alegra que me lo hayas indicado.

Saludos

liderzor

  • Me das tu IP?
  • *
  • Mensajes: 72
  • Sexo: Masculino
    • Ver Perfil
Re:[C#] Check Sum (CSUM)
« Respuesta #6 en: Agosto 09, 2012, 02:39:56 pm »
hehehe como dicen, todos los dias se aprende algo nuevo :)


question
Check.value en tiempo de ejecucion

Iniciado por 47

2 Respuestas
939 Vistas
Último mensaje Octubre 18, 2006, 07:36:12 pm
por 47
xx
¿Alguna manera práctica de manejar los Check?

Iniciado por Nekuroi

4 Respuestas
995 Vistas
Último mensaje Marzo 19, 2009, 06:13:56 pm
por seth
question
Media Test Failure - Check Cable

Iniciado por Prototipo D5

7 Respuestas
736 Vistas
Último mensaje Mayo 19, 2012, 09:14:03 pm
por jep
xx
Salto de restricciones de seguridad en Check Point VPN-1 SecureClient

Iniciado por Phantom_man

0 Respuestas
1051 Vistas
Último mensaje Diciembre 12, 2005, 08:38:17 am
por Phantom_man
xx
Debian GNU/Linux device driver check page

Iniciado por chili-remasterizado

2 Respuestas
818 Vistas
Último mensaje Diciembre 24, 2009, 07:08:28 am
por chili-remasterizado
exclamation
Facebook quiere cambiar check-ins por wifi gratis

Iniciado por M4inFox

0 Respuestas
288 Vistas
Último mensaje Noviembre 05, 2012, 07:32:56 pm
por M4inFox
xx
Salto de restricciones de seguridad en Check Point Firewall

Iniciado por Phantom_man

0 Respuestas
726 Vistas
Último mensaje Septiembre 30, 2005, 05:47:56 pm
por Phantom_man
xx
Check Point ofrece solución a la vulnerabilidad de Excel !!!

Iniciado por digital

0 Respuestas
423 Vistas
Último mensaje Enero 24, 2008, 11:09:31 pm
por digital
xx
Actualización de Check Point para denegación de servicio "Sockstress"‏

Iniciado por xmna

0 Respuestas
474 Vistas
Último mensaje Septiembre 15, 2009, 02:36:34 am
por xmna
xx
Error connecting to server to check IP address. Will retry in "NO-IP"

Iniciado por alexisfruit

8 Respuestas
1322 Vistas
Último mensaje Septiembre 06, 2011, 05:28:21 pm
por alexisfruit