Satt och skulle bygga lite verktyg för att hålla reda på lösenord och inloggningar internt för Centrum för Effektivt IT, och så tittade jag på en serie om AES kryptering som fans på youtube för att fräscha up mina kunskaper. Kan rekommendera dessa Townsend Intro to AES, det fanns avancerade också från samma person/företag.
I vilket fall så nämnde han något jag inte tänkt på förut och det var: Hur vet man att ingen ändrat på den krypterade datan?
Jag menar de behöver kanske inte alltid ha knäckt krypteringen för att ställa till stora problem för programmet som skall använda denna krypterade data. Det kan ju räcka att lite i den krypterade strängen för att en mjukvara inte skall finna vad den förvänta sig och därmed flippa ut och skapa säkerhetsproblem eller bara vara till besvär. Det han nämnde var att använda hash för att verifiera sin data.
Så jag byggde två funktioner i Pascal
Pascal: Jo jag vet, folk tycker det är utdött, och jag programmerar till vardags i nästan alla språk men jag älskar pascal och jag var så oerhört glad att se att free-pascal och Lazarus har kommit så långt i sin utveckling att det är riktigt användbart. Jag har inte haft några problem att kompilera om mina gamla utils sedan förr (Delphi) i både Windows och Linux vilket är hur coolt som helst och betydligt mindre overhead än att använda java.
Tillbaks till den egentliga diskussionen.
Funktionen nedan tar en sträng som den lägger till en sha256 hash i slutet på och krypterar.
1: function EncryptString(source: String): String;
2: begin
3: Cipher:= TDCP_rijndael.Create(nil);
4: Cipher.InitStr(sha256hash(key),TDCP_sha256);
5: // Notera att jag nedan lägger till en hash av
6: // source till strängen innan krypteringen
7: source := source +'#'+sha256hash(source);
8: Result:=Cipher.EncryptString(source);
9: Cipher.Burn;
10: Cipher.Free;
11: end;
Denna motsatta funktion tar en krypterad sträng och avkrypterar den upp den, sedan delar den på hash och värde, gör en ny hash av värdet och jämför de två hasharna. Om dessa är lika då godkänner den resultatet annars returneras “ERROR (Data integrity)”.
1: function DecryptString(source: String): String;
2: var
3: i, i2:Integer;
4: tmpStr,tmpHash:String;
5: begin
6: Cipher:= TDCP_rijndael.Create(nil);
7: Cipher.InitStr(sha256hash(key),TDCP_sha256);
8: tmpStr:=Cipher.DecryptString(source);
9: tmpHash:=copy(tmpStr,Rpos('#',tmpStr)+1,UTF8Length(tmpStr)-Rpos('#',tmpStr));
10: tmpStr:=copy(tmpStr,0,Rpos('#',tmpStr)-1);
11: if (tmpHash = sha256hash(tmpStr)) then Result:=tmpStr else Result := 'ERROR (Data integrity)';
12: Cipher.Burn;
13: Cipher.Free;
14: end;
Eventuellt skulle man skapa en riktig error, men för mitt behov är detta bättre och jag kollar efter ERROR när jag använder funktionen.
I vilket fall så genom att göra så här så ökar man säkerheten och blir medveten om ifall någon ändrat på den krypterade data man lagrat.
c19c0704-252c-4605-84db-31ada232ac99|0|.0
Här är en lista över de tjänster jag tänkte använda jag använder för att Pinga min webblogg. Faktum är att det är nog mest Google som är riktigt aktuell för mig. Jag vill gärna informera om säkerhet samt vad som händer hos oss och jag hoppas det hjälper läsare. Men det är inte så att jag vill försöka bli någon stor bloggare eller framstå som en expert som man refererar till. Trots det så är det ju kul om någon läser vad man skriver :)
http://rpc.pingomatic.com/
http://rpc.aitellu.com
http://ping.bloggnytt.se
http://blogsearch.google.com/ping/RPC2
http://www.nyhetsfilter.se/ping/
http://nyligen.se/ping/
http://blogsearch.tailsweep.com/xmlrpc.do
http://rpc.technorati.com/rpc/ping
http://rpc.twingly.com/
http://nybloggat.se/ping/it
http://svensk.lemonad.org/ping/
http://ping.weblogs.se/
http://ping.feedburner.com
http://www.frisim.com/ping/
http://blogupdate.org/sverige/ping/
http://www.bloggupdate.se/post.php
http://www.bloggportalen.se/BlogPortal/view/Ping?do=ping
Kräver ett konto som ersätter ? nedan
http://ping.bloggportalen.aftonbladet.se/BlogPortalPing/ping/?????/???????
Jag använder Windows Live Writer när jag skriver (eller Word och sedan klistrar jag in i Live Writer så får jag bättre hjälp att stava). Live writer går att hämta gratis via http://download.live.com/
I Windows Live Writer så lägger du till ping tjänster via meny “Verktyg->Alternativ”

4ded34cc-66f4-4f7b-9ad6-48de6f56752a|0|.0
Jag har alltid problem att hitta ikoner jag tycker är snygga, oftast slutar det med att jag gör mina egna. Men detta tar också massor av onödig tid. Jag hittade denna siten när jag letade teman till min weblog.
http://www.iconfinder.net/
När det gäller CSS så är det också något som kan ta lång tid och här tycker jag denna siten är lysande med sina CSS mallar. Bara hitta en layout som passar lite och sedan anpassa den och fylla den med något snyggt.
http://www.free-css.com/
SSL cert är något som kostar massor om man skall köpa till varje site. Här är en länk till ett företag som säger att de gör det utan kostnad när det går. De tar dock fortfarande betalt när deras personal behöver arbeta på att verifiera att du är du. De har dock en certifikat typ som är helt gratis enligt siten (ej testat).
http://www.startssl.com
f8bd8bd7-8f4e-4809-b1fb-a0b9981689b1|0|.0