Cryptography Skrevet 25. august 2008 Del Skrevet 25. august 2008 Heisann.. Noen som kan hjelpe meg med å forstå hvordan selve utregningen i dette Perl-scriptet foregår? sub toled { my $page = shift; my $str = shift; # calculate checksum my $checksum = 0x74; for (0..length($str)-1) { my $c = ord(substr($str,$_)); $checksum = $checksum ^ $c; } # construct basic "display this on page $page" message my $ledcode = sprintf("<ID00><L1><P%s><FE><MA><WC><FE>%s%02X<E>", uc($page), $str, $checksum); # send to serial device /dev/ttyS0 open SERIAL, ">/dev/ttyS0"; print SERIAL $ledcode; close SERIAL; } For eksempel har man kommet frem til at denne selve teksten i denne linjen her har generert checksumen 4B. <ID00><L1><PA><FE><MA><WC><FE>Text message entered4B<E> Lenke til kommentar
trtrtr Skrevet 26. august 2008 Del Skrevet 26. august 2008 Heisann.. Noen som kan hjelpe meg med å forstå hvordan selve utregningen i dette Perl-scriptet foregår? sub toled { my $page = shift; my $str = shift; # calculate checksum my $checksum = 0x74; for (0..length($str)-1) { my $c = ord(substr($str,$_)); $checksum = $checksum ^ $c; } # construct basic "display this on page $page" message my $ledcode = sprintf("<ID00><L1><P%s><FE><MA><WC><FE>%s%02X<E>", uc($page), $str, $checksum); # send to serial device /dev/ttyS0 open SERIAL, ">/dev/ttyS0"; print SERIAL $ledcode; close SERIAL; } For eksempel har man kommet frem til at denne selve teksten i denne linjen her har generert checksumen 4B. <ID00><L1><PA><FE><MA><WC><FE>Text message entered4B<E> det loopes over hvert tegn i inputstring og gjøres en xor på ascii verdi til hver av disse mot "checksum", en tallverderdi som endres underveis. Om første bokstav var a (som er ascii verdi 97 (fra ord() funksjon)), får vi: #0x74 (hex): 1110100 (bin) #97(dec) : 1100001 (bin) #------------------------- #0x74^97 : 0010101 (bin) (dvs 21 dec, som benyttes som $checksum mot neste tegn) Lenke til kommentar
mobents Skrevet 14. september 2008 Del Skrevet 14. september 2008 (endret) interessant at noen faktisk trenger hjelp til akkurat det samme som meg. en ting jeg lurer på, er om den begynner på slutten av stringen, siden step = -1 i koden. jeg holder på å prøve å gjenskape denne i visual basic, som et systray program som skal kjøre hele tiden. er det noen som er villige til å hjelpe littegran med dette? Endret 14. september 2008 av mobents Lenke til kommentar
h3st Skrevet 16. september 2008 Del Skrevet 16. september 2008 en ting jeg lurer på, er om den begynner på slutten av stringen, siden step = -1 i koden. Uhmnai, step er ikke -1. Hvis du ser litt nærmere etter står det 'for (0..length($str)-1)', altså: fra null til lengden på strengen minus 1 (siden vi begynner å telle på 0 i stedet for 1). Step er ikke angitt eksplisitt---jevnfør 'for each (@array)', hvor den stepper seg gjennom en liste. Samme greia her, bare at lista er gitt ved (0..n). jeg holder på å prøve å gjenskape denne i visual basic, som et systray program som skal kjøre hele tiden. ouch :\ Lenke til kommentar
Cryptography Skrevet 11. oktober 2008 Forfatter Del Skrevet 11. oktober 2008 jeg holder på å prøve å gjenskape denne i visual basic, som et systray program som skal kjøre hele tiden. er det noen som er villige til å hjelpe littegran med dette? Hvordan gikk det med prosjektet? Fikk du gjennomført det? Isåfall hadde det vært flott om du hadde delt det med meg... Jeg har et PHP-script som gjør utregningene, men hadde vært greit å gjort det i selve programmet.. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå