Hej Flashbackare!
Då den förra tråden om detta ämne var som gjord för att skapa missförstånd lägger jag upp en ny för ändamålet.
För er som inte är intresserade av hur vi kommit fram till resultatet får ni redan här länken till en liten java-applikation till mobiltelefoner. Denna genererar semikorrekta SMS-biljetter som klarar av allt utom en grundlig koll.
Notera att Tricket endast är för studiebruk och används i SL-trafiken på egen risk!
http://84.55.91.134/Tricket.html
Tack Malako som kodade applikationen!
Nu till en snabb förklaring om vad jag kommit fram till om de olika siffrorna och bokstäverna i SMS:et. Som underlag har jag haft en hel del SMS att titta på. Mest mina egna och Malako's, men även några från andra användare.
721501110
2008-07-09 01:08
101-R-A 02:23
+'953296452'+
+'932547064'+
+'700663442'+
2008-07-09
SL Biljett giltig till kl. 02:23. RED.PRIS 18 kr (inkl. 6% moms).
0108U5294G09a3e373090
En sms-biljett består av ett flertal mer eller mindre viktiga delar. Jag har markerat de viktiga.
Avsändarnumret har två viktiga delar, 72150 AB CC
AB är zonkodning. Jag är har observerat detta:
7215011xx A = zon a
7215012xx B = zon b
72150xxxx C = zon c
7215024xx D = zon ab
72150xxxx E = zon bc
7215036xx F = zon abc
och drar då slutsatsen att det är byggt såhär:
7215011xx A = zon a
7215012xx B = zon b
7215013xx C = zon c
7215024xx D = zon ab
7215025xx E = zon bc
7215036xx F = zon abc
A är antal zoner man åker igenom och B är biljettypen. Bokstaven jag skrivit bredvid telefonnumret är det trettonde tecknet i kontrollkoden. Versal för helt pris och gemen för reducerat.
CC är ett tvåsiffrigt tal som jag kommer ta upp längre ner då jag behöver en siffra i slutet av kontrollkoden.
101-R-A 02:23
101 är helt enkelt CCB, om man tittar på avsändarnumret. Tecknet efter är alltid en matematisk operator (+-*/) som tillsynes väljs ut slumpmässigt. Pä senare tid har dock enbart "-" och "/" använts, så vi kan ignorera övriga tecken.
Sedan kommer vanlig information och tre ganska slumpade sifferrader som hänger ihop lite löst. Dessa kontrolleras inte så vitt jag vet, så vi har valt att helt enkelt slumpa fram större delen i Tricket.
Nu till kontrollkoden! Jag har kollat på några relativt nya sms och försökt lista ut hur det ligger till.
0108U5294G09a3e373090 - Tiden vid inköp. Behöver inte förklaras.
0108U5294G09a3e373090 - En kod för varje veckodag. Den byts vid månadsskifte. Till exempel: I juni 2008 hade alla fredagar K6-2 och alla söndagar H4-6. Den sista av dessa två siffror används för att räkna ut telefonnumret. Detta kommer om ett tag. Jag skrev upp månadsvis för varje veckodag från de jag har:
0108U5294G09a3e373090 - Sista siffrorna i ditt telefonnummer.
0108U5294G09a3e373090 - Datum. Först månad: A=1 (Jan), B=2 (Feb), osv. och sen dagens datum. G09 är alltså nionde juli.
0108U5294G09a3e373090 - Kod för biljettyp, vilket jag redan gått igenom.
0108U5294G09a3e373090 - Det här är i princip biljettens serienummer. Då Malako på fyllan av misstag skickade iväg fem SMS inom en minut kan vi konstatera att de sex siffrorna rullar och bokstaven ändras lite hipp som happ.
0107H4524F29A6 a234984
0107H4524F29A6 f234987
0107H4524F29A6 g234988
0107H4524F29A6 z234990
0107H4524F29A6 h234991
72150ABCC - De här två siffrorna är baserade på tiden i minuter vid biljettköpet och en siffra i koden (0108U5294G09a3e373090)
Vi kallar siffran för x. Vi har sedan tidigare 72150ABCC och antal minuter (0108 /.../). Detta ger oss att
CC = x + antal minuter - A
Telefonnumret borde då sluta på 3 + 8 - 1 = 10
721501110, vilket är helt rätt.
Det här är alla koder jag tittat på för att komma fram till allt detta. Jag och Malako drog upp allt i excel för kontroll och alla avsändarnummer stämmer.
Säg till om ni hittar några fel eller har något annat att tipsa om! Jag svarar i den mån jag kan på frågor om systemets uppbyggnad eller om oklarheter i mina förklaringar.
Må väl!
Då den förra tråden om detta ämne var som gjord för att skapa missförstånd lägger jag upp en ny för ändamålet.
För er som inte är intresserade av hur vi kommit fram till resultatet får ni redan här länken till en liten java-applikation till mobiltelefoner. Denna genererar semikorrekta SMS-biljetter som klarar av allt utom en grundlig koll.
Notera att Tricket endast är för studiebruk och används i SL-trafiken på egen risk!
http://84.55.91.134/Tricket.html
Tack Malako som kodade applikationen!
Nu till en snabb förklaring om vad jag kommit fram till om de olika siffrorna och bokstäverna i SMS:et. Som underlag har jag haft en hel del SMS att titta på. Mest mina egna och Malako's, men även några från andra användare.
721501110
2008-07-09 01:08
101-R-A 02:23
+'953296452'+
+'932547064'+
+'700663442'+
2008-07-09
SL Biljett giltig till kl. 02:23. RED.PRIS 18 kr (inkl. 6% moms).
0108U5294G09a3e373090
En sms-biljett består av ett flertal mer eller mindre viktiga delar. Jag har markerat de viktiga.
Avsändarnumret har två viktiga delar, 72150 AB CC
AB är zonkodning. Jag är har observerat detta:
7215011xx A = zon a
7215012xx B = zon b
72150xxxx C = zon c
7215024xx D = zon ab
72150xxxx E = zon bc
7215036xx F = zon abc
och drar då slutsatsen att det är byggt såhär:
7215011xx A = zon a
7215012xx B = zon b
7215013xx C = zon c
7215024xx D = zon ab
7215025xx E = zon bc
7215036xx F = zon abc
A är antal zoner man åker igenom och B är biljettypen. Bokstaven jag skrivit bredvid telefonnumret är det trettonde tecknet i kontrollkoden. Versal för helt pris och gemen för reducerat.
CC är ett tvåsiffrigt tal som jag kommer ta upp längre ner då jag behöver en siffra i slutet av kontrollkoden.
101-R-A 02:23
101 är helt enkelt CCB, om man tittar på avsändarnumret. Tecknet efter är alltid en matematisk operator (+-*/) som tillsynes väljs ut slumpmässigt. Pä senare tid har dock enbart "-" och "/" använts, så vi kan ignorera övriga tecken.
Sedan kommer vanlig information och tre ganska slumpade sifferrader som hänger ihop lite löst. Dessa kontrolleras inte så vitt jag vet, så vi har valt att helt enkelt slumpa fram större delen i Tricket.
Nu till kontrollkoden! Jag har kollat på några relativt nya sms och försökt lista ut hur det ligger till.
0108U5294G09a3e373090 - Tiden vid inköp. Behöver inte förklaras.
0108U5294G09a3e373090 - En kod för varje veckodag. Den byts vid månadsskifte. Till exempel: I juni 2008 hade alla fredagar K6-2 och alla söndagar H4-6. Den sista av dessa två siffror används för att räkna ut telefonnumret. Detta kommer om ett tag. Jag skrev upp månadsvis för varje veckodag från de jag har:
Kod:
Jag har letat mönster i dessa bokstäver och siffror i flera timmar utan att hitta något. Jag lämnar över stafettpinnen för detta till er.5 6 7 8 9 mån A9-4 L5-2 P3-3 H8-4 tis E8-5 A4-6 A4-6 ons L3-2 U5-3 H8-5 tors P4-5 X6-5 B3-4 fre V1-2 K6-2 P9-2 M9-6 H7-4 lör Q6-5 sön K2-4 H4-6 U2-2 K1-2
0108U5294G09a3e373090 - Sista siffrorna i ditt telefonnummer.
0108U5294G09a3e373090 - Datum. Först månad: A=1 (Jan), B=2 (Feb), osv. och sen dagens datum. G09 är alltså nionde juli.
0108U5294G09a3e373090 - Kod för biljettyp, vilket jag redan gått igenom.
0108U5294G09a3e373090 - Det här är i princip biljettens serienummer. Då Malako på fyllan av misstag skickade iväg fem SMS inom en minut kan vi konstatera att de sex siffrorna rullar och bokstaven ändras lite hipp som happ.
0107H4524F29A6 a234984
0107H4524F29A6 f234987
0107H4524F29A6 g234988
0107H4524F29A6 z234990
0107H4524F29A6 h234991
72150ABCC - De här två siffrorna är baserade på tiden i minuter vid biljettköpet och en siffra i koden (0108U5294G09a3e373090)
Vi kallar siffran för x. Vi har sedan tidigare 72150ABCC och antal minuter (0108 /.../). Detta ger oss att
CC = x + antal minuter - A
Telefonnumret borde då sluta på 3 + 8 - 1 = 10
721501110, vilket är helt rätt.
Det här är alla koder jag tittat på för att komma fram till allt detta. Jag och Malako drog upp allt i excel för kontroll och alla avsändarnummer stämmer.
Kod:
1336V1294E02A2x091139 1247K2294E11A4v253542 1417E8294F03A5z697617 1250L3524F04A2t716551 1825L3524F04A2j725413 1328P4524F05A5f740285 1544P4524F05A5b743898 1709P4524F05A5e746697 0107K6294F06a2e755981 0108K6524F06A2e755985 0749A9524F09A4y809429 1216A9524F09A4c814933 0811E8524F10A5b831136 1725E8524F10A5j843616 1725L3524F11A2s866891 1234P4524F12A5u880872 1918P4524F12A5c890453 0801K6524F13A2x896312 1926K6524F13A2h912102 0056H4294F15a6c944005 1059H4294F15a6i948149 0949A9524F16A4y969015 1144A9524F16A4g971308 1821A9524F16A4f984764 1030E8524F17A5f996627 1858E8524F17A5t011540 1251L3524F18A2v025590 2040L3524F18A2a040664 1851P4524F19A5u063512 1005U2524F21D7x081604 0835A9524F23A4j106490 1818A9524F23A4y120564 0940E8524F24A5h129995 1754E8524F24A5a141863 0948L3524F25A2n153044 1736L3524F25A2u164518 1356P4524F26A5x180681 1810P4524F26A5h187887 0923K6294F27a2x197438 1359K6524F27A2r202238 1717K6524F27A2t208273 0107H4524F29A6a234984 0107H4524F29A6f234987 0107H4524F29A6g234988 0107H4524F29A6z234990 0107H4524F29A6h234991 1138H4675F29a6f239*** 1329H4675F29a6i239*** 0831A9524F30A4s251826 1714A9524F30A4x262278 2234U5524G02A3h289797 1341P9524G04A2e305932 1814P9524G04A2b310298 2124P9524G04A2j312796 1146L5524G07A2r346176 0108U5294G09a3e373090 0016Q6524G12A5k418426 2249Q6524G12A5c431194 1656A4524G15A6p464318 1555X6524G17A5f494678 1745Q6524G19A5j528454 2320U2524G20A2x546187 1357L5524G28A2a664280 2214A4524G29A6z688576 1804M9524H01A6d735702 0050K1524H03A2r762145 0154K1450H10a2p899*** 1051P3524H11A3c918536 0830H8***H20A5i118925 1807H8***H20A5i133843 1755B3275H21A4k157*** 1349A4524H26A2u258039 1603H8524H27A5m281581 1331M9***H29a6z320997 1549H8910I01f6f489253 1742H8524I01A4t393451 2358H8910I01c4t398881 2025H7587I05d4i483961
Säg till om ni hittar några fel eller har något annat att tipsa om! Jag svarar i den mån jag kan på frågor om systemets uppbyggnad eller om oklarheter i mina förklaringar.
Må väl!
