16 Septiembre 2014, 05:25:36 pm

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

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

Desconectado liderzor

  • Me das tu IP?
  • *
  • Mensajes: 72
  • Puntos: +0/-0
  • Sexo: Masculino
    • Ver Perfil
[C#] Check Sum (CSUM)
« en: 02 Agosto 2012, 04: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...

Desconectado kicasta

  • Yo vivo en CPH
  • ***
  • Mensajes: 578
  • Puntos: +0/-0
    • Ver Perfil
Re:[C#] Check Sum (CSUM)
« Respuesta #1 en: 03 Agosto 2012, 12: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#) Registrate para ver este link. Registrate ó Login
//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
Registrate para ver este link. Registrate ó Login
Registrate para ver este link. Registrate ó Login
Registrate para ver este link. Registrate ó Login

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.”

Registrate para ver este link. Registrate ó Login: Registrate para ver este link. Registrate ó Login - Registrate para ver este link. Registrate ó Login

Desconectado liderzor

  • Me das tu IP?
  • *
  • Mensajes: 72
  • Puntos: +0/-0
  • Sexo: Masculino
    • Ver Perfil
Re:[C#] Check Sum (CSUM)
« Respuesta #2 en: 03 Agosto 2012, 12: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: 03 Agosto 2012, 01:17:09 pm por liderzor »

Desconectado kicasta

  • Yo vivo en CPH
  • ***
  • Mensajes: 578
  • Puntos: +0/-0
    • Ver Perfil
Re:[C#] Check Sum (CSUM)
« Respuesta #3 en: 03 Agosto 2012, 11:34:12 pm »
El método Registrate para ver este link. Registrate ó Loginque 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: 03 Agosto 2012, 11:35:13 pm por kicasta »

Desconectado liderzor

  • Me das tu IP?
  • *
  • Mensajes: 72
  • Puntos: +0/-0
  • Sexo: Masculino
    • Ver Perfil
Re:[C#] Check Sum (CSUM)
« Respuesta #4 en: 06 Agosto 2012, 01:32:30 pm »
hehehe pues si, el metodo .ToString si recibe parametros  del formato del nuevo objeto de la cadena aki info Registrate para ver este link. Registrate ó Login, intentare usar alguno de esos metodos de CSUM a ver si me sale con esos gracasi cualquier cosa estare comentando como me va!

Desconectado kicasta

  • Yo vivo en CPH
  • ***
  • Mensajes: 578
  • Puntos: +0/-0
    • Ver Perfil
Re:[C#] Check Sum (CSUM)
« Respuesta #5 en: 06 Agosto 2012, 04: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

Desconectado liderzor

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


  Asunto / Iniciado por Respuestas / Vistas Último mensaje
question
Check.value en tiempo de ejecucion

Iniciado por 47

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

Iniciado por Nekuroi

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

Iniciado por Prototipo D5

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

Iniciado por Phantom_man

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

Iniciado por chili-remasterizado

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

Iniciado por M4inFox

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

Iniciado por Phantom_man

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

Iniciado por digital

0 Respuestas
418 Vistas
Último mensaje 24 Enero 2008, 10:09:31 pm
por digital