Turvallista uuttavuotta – pari sanaa salasanoista

Mennyt vuosi on taas muistuttanut monesti meitä verkkomedian käyttäjiä tietoturvan tarpeesta. Meidän ei tule ainoastaan päivittää internetselaimiamme ja käyttöjärjestelmiämme vaan tietoturva koskee paljon muutakin.

”Lähes” kaikki ovat mukana sosiaalisessa mediassa. On tili Facebookiin, Twitteriin, LinkedIn:iin. Myös blogaamisen suosio on jatkanut kasvuaan ja sen myöden käyttäjätilejä erilaisiin blogaamispalveluihin on varmaankin ennätysmäärät. Kun huomioon otetaan Youtube, Irc-galleria ja lukuisat erilaiset keskustelupalstat, niin internetissä olevien käyttäjätunnusten ja salasanojen määrä on valtava. Itse laskeskelin, että reilut 15 erilaista käyttäjätiliä löytyy itseltäni, enkä edes ole kaikkialla siellä missä ehkä pitäisi olla 🙂 Laskuissa ei ole mukana verkkopankki eikä verkkokaupat.

kirjautuminen
Jatka lukemista ”Turvallista uuttavuotta – pari sanaa salasanoista”

Kriittinen haavoittuvuus WordPress-sisällönhallintajärjestelmässä

Viestintävirasto on tiedoittanut vakavasta WordPress haavoittuvuudesta joka tulisi ottaa välittömästi huomioon. Käytännössä haavoittuvuus mahdollistaa haittakoodin syöttämisen blogin kommentteihin jonka kautta voidaan tehdä pääkäyttäjätason muutoksia sivustossa sekä vaihtaa pääkäyttäjän salasana.

Jatka lukemista ”Kriittinen haavoittuvuus WordPress-sisällönhallintajärjestelmässä”

Tietojen käsittelyn perusteita: pino ja jono

Pino (stack) on nimensä mukaisesti tietorakenne jossa viimeisenä lisätty tieto noudetaan ensimmäisenä. Jos esimerkiksi pinoamme lautasia, niin viimeisenä pinon päällimmäiseksi laitettu lautanen on se jonka me ensimmäisenä otamme pinosta pois. Lautaspinon tavoin, myös tietorakenteessa käytäntö on, että jos otamme päällimmäisen datan pinosta pois, sen uudelleenkäyttö vaatii datan sijoittamista takaisin pinoon. Pinosta puhutaan myös LIFO-tietorakenteena, (Last-In, First-Out).

Jono (queue) taasen tunnetaan FIFO-tietorakenteena (First-In, First-Out), jossa siis ensimmäisenä sijoitettu data on myös ensimmäisenä saatavilla. Vertauksena vaikkapa kaupan kassajono. Ensimmäinen asiakas saa maksaa ostoksena ennen muita ja pääsee lähtemään kotimatkalle. Muut asiakkaat odottavat sen mukaisesti, missä järjestyksessä he ovat kassajonoon saapuneet.

Normaalien kassajonokäytäntöjen mukaisesti, jos asiakas palaa kauppaan vielä jotain hakemaan, joutuu hän uudestaan jonoon odottamaan omaa vuoroaan.

Tosiasiassahan lista itsessään ei sisällä mainittua dataa vaan viitteen siihen, on helpompi esittää asia kuten sen yllä tein.

Tietojen käsittelyn perusteita: järjestetty lista

Järjestetty lista (ordered list) poikkeaa linkitetystä listasta merkittävästi. Siinä missä linkitetyssä listassa pitää lähteä aina alusta (tai lopusta jos on kahteen suuntaan linkitetty lista) hakemaan tietoa, niin järjestetyssä listassa haku voidaan kohdentaa avaimen perusteella suoraan oikeaan elementtiin.
Jatka lukemista ”Tietojen käsittelyn perusteita: järjestetty lista”

Tietojenkäsittelyn perusteita: tietorakenteet – linkitetty lista

Linkitetty lista (linked list) on yksi yleisimmistä tietorakenteista ja se koostuu yhdestä tai useammasta elementistä, joissa on normaalin datan lisäksi ns. linkki seuraavaan elementtiin. Tietojenkäsittelyssä puhutaan usein myös solmuista. Kahteen suuntaan linkitetyssä listassa elementeillä on datan lisäksi linkki seuraavaan ja edelliseen elementtiin. Tosiasiassahan lista itsessään ei sisällä mainittua dataa vaan viitteen siihen, on helpompi esittää asia kuten sen yllä tein.

Tavallisesti linkitetystä listasta voidaan hakea tietty elementti vain liikkumalla ensimmäisestä elementistä kohti listan loppua elementti kerrallaan. Kahdensuuntaisessa listassa voidaan aloittaa alusta tai lopusta ja vaihtaa myös suuntaa.
Jatka lukemista ”Tietojenkäsittelyn perusteita: tietorakenteet – linkitetty lista”

Lisää alkeita: kahden muuttujan arvon vaihtaminen

Kahden luvun sisältävän muuttujan vaihtaminen on yksinkertaista. Se onnistuu yhteen- ja vähennyslaskuilla. Alla esimerkki.

// oletetaan, että a=5 ja b = 10
b = b + a;	// b = 15
a = b - a;	// a = 10
b = b - a;	// b = 5

Kun käsittelyyn otetaan kaksi merkkijonoa sisältävää muuttujaa tarvitaan ohjelmointikielen omia metodeja/funktioita avuksi. Javassa metodien nimet ovat substring(),length() ja esim. FreeBasicissa tarvittavat funktiot ovat mid() ja len().

// Java esimerkki.
// tekstiä sisältävien muuttujien arvojen vaihto vaatii ihan vähän enemmän
// oletetaan, että a = "Moi" ja b = "Heippa"
b = b + a;	                                 // b = "HeippaMoi"
a = b.substring(0,b.length() - a.length());	 // a = "Heippa"
b = b.substring(a.length());                     // b = "Moi"

Javalla toteutettu ohjelma jossa esimerkkinä toteutettu sekä int, että String muuttujien arvojen vaihtaminen löytyy .pdf muodossa viereisestä linkistä. varSwap_java.pdf

Algoritmien alkeita: merkkijono kokonaisluvuksi

Useimmat ohjelmointikielet tarjoavat valmiit funktiot tekstijonon muuttamiseksi kokonaisluvuksi ja toisinpäin. Tämä ei kuitenkaan tarkoita sitä, että tämänkaltaisten funktioiden toiminnan pohdiskelu olisi turhaa. Kaikenlaisten algoritmien (suht turhienkin) pohdiskelu on mukavaa aivojumppaa.

Ohjelmoinnin perusteet osaavalle merkkijonon muuntaminen kokonaisluvuksi oman algoritmin avulla on kohtuullisen helppo tehtävä. Ohessa oma versioni, jonka olen toteuttanut Javalla, toki se on helposti muunnettavissa muillekin ohjelmointikielille. Olen kommentoinut algoritmin toiminnan koodin ohessa.

Voit ladata koodin pdf-muodossa viereisestä linkistä. str2int