Kotlin ile Sezar Algoritması: Gizli Mesajlaşmanın Temelleri

Halil Özel
2 min readMar 30, 2024

Sezar algoritması, tarihteki en eski ve en basit şifreleme algoritmalarından biridir. Julius Caesar tarafından, MÖ 1. yüzyılda askeri iletişimi gizlemek için kullanıldığına inanılıyor. Algoritma, metindeki her harfi, alfabedeki sabit bir sayıda yer değiştiren bir ikame şifrelemesidir.

Kotlin | Sezar Algoritması

Sezar Algoritması Nasıl Çalışır?

Sezar algoritması, bir anahtar değerine dayanır. Anahtar değeri, her harfin kaç yer değiştirileceğini belirler. Örneğin, anahtar değeri 3 ise, her harf alfabede 3 sıra ileri kaydırılır. A harfi D olur, B harfi E olur ve bu şekilde devam eder.

Sezar Algoritmasını Kotlin ile Uygulamak

Sezar algoritmasını Kotlin ile uygulamak oldukça basittir. Aşağıda, bir metni şifreleyen ve şifresini çözen basit bir Kotlin fonksiyonu yer almaktadır:

fun caesarCipher(text: String, key: Int) = text.map { char ->
if (char.isLetter()) {
val shiftedChar = 'a' + (char.lowercaseChar() - 'a' + key) % 26
if (char.isUpperCase()) shiftedChar.toUpperCase() else shiftedChar
} else {
char
}
}.joinToString("")

fun caesarDecipher(text: String, key: Int) = caesarCipher(text, 26 - key % 26)

fun main() {
val message = "Shakira"
val key = 3

val encrypted = caesarCipher(message, key)
println("Encrypted: $encrypted")

val decrypted = caesarDecipher(encrypted, key)
println("Decrypted: $decrypted")
}

Sezar Algoritmasının Güvenliği

Sezar algoritması, basit bir algoritma olduğu için çok güvenli değildir. Anahtar değeri biliniyorsa, şifrelenmiş metin kolayca çözülebilir. Bu nedenle, Sezar algoritması yalnızca yüksek güvenlik gerektirmeyen durumlarda kullanılmalıdır.

Sezar Algoritmasının Kullanım Alanları

Sezar algoritması, aşağıdaki gibi çeşitli alanlarda kullanılabilir:

  • Eğlence amaçlı gizli mesajlaşma
  • Basit şifreleme uygulamaları
  • Veritabanlarında parola saklama (güvenli değil!)

Sonuç

Sezar algoritması, basit bir şifreleme algoritmasıdır. Kotlin ile uygulamak oldukça kolaydır. Sezar algoritması çok güvenli olmasa da, eğlence amaçlı gizli mesajlaşma ve basit şifreleme uygulamaları için kullanılabilir.

Yazıyı beğendiyseniz desteklemek için bir large size flat white’nızı içerim. ☕️ 🦅 🙌🏻

--

--