A titkosítás története során számos technika született annak érdekében, hogy az információ biztonságosan eljuthasson a címzettjéhez anélkül, hogy illetéktelenek értelmezni tudnák azt. Az egyik legrégebbi és legismertebb módszer a Caesar-kód, amely Julius Caesar római államférfi nevéhez fűződik, és amely egyszerű eltolási algoritmuson alapul. Ebben a cikkben bemutatjuk, hogyan valósítható meg a Caesar-kód a PowerShell programozási nyelven keresztül.

Mi a Caesar-kód?

A Caesar-kód egy típusa a szubsztitúciós titkosításnak, ahol minden betűt az ábécében egy előre meghatározott számmal eltolnak. Például, ha az eltolás értéke 3, akkor az ‘A’ betű ‘D’-vé, a ‘B’ ‘E’-vé válik és így tovább. A titkosítási folyamat reverzibilis, vagyis a titkosított szöveg visszafejthető ugyanezen eltolás értékének alkalmazásával, csak éppen ellentétes irányba.

Az eltolás implementálása

PowerShell használatával egyszerűen implementálhatjuk ezt a titkosítási módszert. Az első lépés a titkosítandó szöveg és az eltolás mértékének megadása.

function Caesar-Kodol {
    param (
        [String]$Szoveg,
        [Int]$Eltolas
    )

    $titkositottSzoveg = ""

    foreach ($betu in $Szoveg.ToCharArray()) {
        if ($betu -match '[a-z]') {
            $titkositottSzoveg += char
                [Math]::Abs((([int]$betu - 97 + $Eltolas) % 26) + 97)
        }
        elseif ($betu -match '[A-Z]') {
            $titkositottSzoveg += char
                [Math]::Abs((([int]$betu - 65 + $Eltolas) % 26) + 65)
        }
        else {
            $titkositottSzoveg += $betu
        }
    }

    return $titkositottSzoveg
}

Ebben a példában a Caesar-Kodol függvény fogad egy szöveget és egy eltolás értéket. A szöveg minden karakterén iterálva ellenőrzi, hogy az adott karakter kis- vagy nagybetű-e, és alkalmazza a megfelelő eltolást. Amennyiben a karakter nem betű (írásjelek, számok stb.), úgy az eredeti karakter kerül a titkosított szövegbe.

A titkosított szöveg dekódolása

A dekódolás hasonló elven működik, csak az eltolás értékét negatívvá tesszük.

function Caesar-Dekodol {
    param (
        [String]$TitkositottSzoveg,
        [Int]$Eltolas
    )

    return Caesar-Kodol -Szoveg $TitkositottSzoveg -Eltolas (-$Eltolas)
}

Ebben az esetben a Caesar-Dekodol függvény a Caesar-Kodol függvényt hívja meg, csak az eltolás értékét negatívra állítva, ezzel ellentétes irányú eltolást végezve, amivel visszafejthetővé válik a titkosított szöveg.

Példák

$eredetiSzoveg = "Hello PowerShell"
$eltolas = 3
$titkositott = Caesar-Kodol -Szoveg $eredetiSzoveg -Eltolas $eltolas
$dekodolt = Caesar-Dekodol -TitkositottSzoveg $titkositott -Eltolas $eltolas

Write-Host "Eredeti szöveg: $eredetiSzoveg"
Write-Host "Titkosított szöveg: $titkositott"
Write-Host "Dekódolt szöveg: $dekodolt"

Ebben a példában a Hello PowerShell szöveget titkosítjuk 3-as eltolással, majd dekódoljuk ugyanezzel az eltolással. Az eredmény megmutatja, hogyan működik a Caesar-kód a gyakorlatban.

A Caesar-kód egy egyszerű, de történelmileg jelentős titkosítási módszer, amelyet ma már nem használnak biztonságos kommunikációra, de kiváló tanulóeszköz a titkosítás alapelveinek megértésére. PowerShellben való megvalósítása nem csak a kódolási technika gyakorlását kínálja, hanem a PowerShell programozási környezet mélyebb megismerését is lehetővé teszi.

About The Author

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük