Mensen die met internet security bezig zijn kennen Rhican misschien wel. Rhican is één van de enige personen die alle security challenges op de security website net-force.nl heeft opgelost. Per toeval kwam ik Rhican gisteren tegen op het #qt IRC kanaal omdat hij blijkbaar tegenwoordig ook programma’s schrijft met Qt4/C++.
Hij heeft een programma (PolyKrypt) geschreven waarmee je allerlei zaken kan encrypten en decrypten. Het programma is gebaseerd op het Polycrypt (met een c) programma voor Windows van Goliath team.
De versie van Rhican werkt echter op zowat elk besturingssysteem en is open source. Ik heb van de gelegenheid gebruik gemaakt om de ontbrekende morse decryptie functie te schrijven voor PolyKrypt en sinds versie 1.0.2 is PolyKrypt dus beschikbaar met een Morse Decryptie functie
Voor de geïnteresseerden, dit is de morse decryptie functie:
// morse decryption algorithm by wesley@ubuntu.com // based on rhican's morse encryption algorithm void polyKryptMainWindow::morseDecrypt() { char * morse[]={"A",".-", "B","-...", "C","-.-.", "D","-..", "E",".", "F","..-.", "G","--.", "H","....", "I","..", "J",".---", "K","-.-", "L",".-..", "M","--" , "U","..-", "N","-.", "O","---", "P",".--.", "Q","--.-", "R",".-.", "S","...", "T","-", "V","...-", "W",".--", "X","-..-", "Y","-.--", "Z","--..", "0","-----", "1",".----", "2","..---", "3","...--", "4","....-", "5",".....", "6","-....", "7","--...", "8","---..", "9","----.", ".",".-.-.-", ",","--..--"}; QString padding="/"; QMap<QString,char> morsemap; for (int i=0;i<38;++i) morsemap[morse[(i<<1)+1]]=*morse[i<<1]; QString plain = textInMorse->toPlainText(); QStringList wordMorse = plain.split(" "); QString cipher = ""; QString word; QStringList lettersMorse; QString letter; foreach(word, wordMorse) { lettersMorse = word.split(padding); foreach(letter, lettersMorse) { if (letter.length()==0) cipher+=letter; else cipher+=morsemap[letter]; } cipher+=" "; } textOutMorse->setPlainText(cipher); }
Het programma en de broncode van het programma kan je downloaden op de website van Rhican.