Strax före jul (den 19 december) drog vi igång en liten teknisk tävling för att vaska fram talanger som vi vill ska söka jobb hos oss. Den 15 januari var sista datumet för att vara med i vår tävling, totalt blev det 34 tävlande och vi har nu utsett tre vinnare.
Tävlingen
Tävligen inleddes på http://blogg.binero.se/spel/ som visar en blank sida. Men väljer du att visa källkoden för sidan hittar du en länk som dolts med hjälp av CSS.
Gick man in på den filen fick man information om att uppgifterna tar en vidare till olika textfiler. I sista textfilen hittas den e-postadress man skulle kontakta oss på för att medverka i tävlingen. Som ledtråd för att komma vidare angavs “e206a54e97690cce50cc872dd70ee896″. Här kan man uppmärksamma att ledtråden är 32 tecken lång och består av siffror och bokstäverna a-f (även om b och f inte är med), alltså en typisk md5-hash. En hash är en sorts kontrollsumma och används för att man inte ska behöva spara lösenord i klartext. Istället sparas hashen och vid inloggning kontrolleras att hashen för det angivna lösenordet stämmer överens med hashen som sparats. Hashar som skapats med algoritmen md5 är väldigt enkla och knäcka och bör inte användas för lösenordshantering. För vår hash räcker det med en enkel Googlesökning för att komma fram till att det är ordet “linux” som genererar denna hash. Nästa textfil var alltså linux.txt.
Den här ledtråden var längre: “TXVsdGlwbGljZXJ…pbGwgQmluZXJvLg==” (mitten av ledtråden har ersatts med punkter). Ser man en textsträng med versaler, gemener och siffror huller om buller som avslutas med ett eller två likamedtecken kanske man börjar tänka på base64, en metod för att omvandla binär data till skrivbara tecken. Denna metod är väldigt vanlig för e-post då bilder och annan data som inte är text omvandlas till skrivbara tecken. För att omvandla tillbaka datan kan man gå in på https://www.base64decode.org/ eller använda kommandot base64 i linux. Texten man får ut är: “Multiplicera antalet dagar Binero har öppet köp med hur många GB utrymme man får i privatpaketet och årtalet när Aleborg Solutions bytte namn till Binero.”.
Binero har hela 45 dagars öppet köp och i privatpaketet får man 100 GB utrymme. Med en snabb Googlesökning hittar man att Aleborg Solutions bytte namn till Binero 19 september 2007. Alltså 45*100*2007=9031500.
Där blev det dags för en nätverksfråga: “Kalle har ett /16-nät. Han delar med sig ett /24-nät till sin bästa kompis Pelle. Dessutom vill hans två lillasystrar ha varsitt /21-nät. Hur många adresser har Kalle nu kvar av sitt nät?” Näten är skrivna med CIDR och ett /16-nät består av 65 536 adresser, ett /24-nät av 256 adresser och ett /21-nät av 2 048 adresser. Kalle får då kvar 65 536 – 256 -2048 – 2048 = 61 184 adresser.
I nästa uppgift hittade vi ett php-script som fått några fel.
När man rättat till scriptet såg det ut som följer:
Svaret man fick när man körde scriptet var “331f02e557f57347f9fe176bd74428608fd57928″ som ledde fram till sista uppgiften. Här skulle man räkna ut svaret på “Hur många gånger var den första dagen i månaden mellan 1 januari 1901 och 31 december 2000 en söndag?”. Siffran man fick fram skulle hashas med SHA-256. Det finns många metoder för att räkna ut detta. En lösning är linux-kommandot “for i in {1901..2000}{01..12}01;do date -d $i;done|grep -c Sunday” som ger det korrekta svaret 171. Kommandot loopar genom alla 12 månader för åren 1901 till 2000 och skriver ut veckodagen för den första i månaden, sedan kontrollerar den antalet gånger “Sunday” fanns med i resultatet. För att få ut SHA-256-hashen kan man köra linuxkommandot “echo -n ‘171’|sha256sum” som ger 284de502c9847342318c17d474733ef468fbdbe252cddf6e4b4be0676706d9d0.
Vinnarna
Kom man så här långt fick man fram den e-postadress vi samlade tävlingsanmälningar på. Det gjorde totalt 34 tävlande, och bland dem har vi utsett några lyckliga vinnare:
Daniel Forsell blir en lycklig ägare av en Tetris-bordslampa, Patrik Landin får ett Wahoo pulsband och Torbjörn Backström kan snart kolla tiden med en binär klocka. Stort grattis till alla tre vinnare!
Vi hoppas att ni tyckte uppgifterna var roliga, oavsett om ni var med och tävlade eller inte. Vi hade roligt när vi skapade tävlingen, håll utkik på vår blogg efter nya tävlingar i framtiden!