Ötelemeli Sezar Şifreleme Yöntemi

Ötelemeli Sezar Şifreleme Yöntemi,

Bu yöntem; girilen cümlenin her karakteri belirtilen öteleme miktarı sonrasındaki karakter ile değiştirilmesiyle yeni cümle oluşturulmasıdır.

Algoritma:

  • Yöntem uygulanacak cümle kullanıcıdan alınır.
  • Öteleme miktarı kullanıcıdan alınır.
  • Girilen cümledeki her karakter için öteleme ayrı ayrı yapılacağı için cümledeki tüm karakterleri gezmek gerekmektedir. Cümlenin boyutu kadar gezen bir döngü oluşturulur.
  • Döngü içerisinde cümlenin o anki karakterinin ascii karşılığı bulunur.
  • Eğer karakter boşluk ise değiştirilmez. Değil ise Ascii karşılığının 3 sonrası alınır. Eğer üç karşılığı harflerden başka karaktere giderse tekrar alfabenin ilk harfine geri dönülür ve öteleme miktarı kadar öteleme yapılır. ( Büyük ve küçük harf için ayrı ayrı yapılır.)

Bilinmesi Gerekenler:

Boşluğun ASCII karşılığı 32‘dir.

Küçük harfler (a-z) 97 ile başlar 122’a kadar devam eder.[97-122]

Büyük harfler(A-Z) 65 ile başlar 90’a kadar devam eder.[65-90]

Harfler dışındaki diğer karakterlerde herhangi bir öteleme yapılmamıştır.(Türkçe karakterlerde katılmamıştır.)

Eğer bir karakteri int tipine çevirilirse o karakterin ASCII karşılığı bulunur.

String’i char dizisine aktarmak için  sezar.toCharArray() fonksiyonu kullanılabilir.

Java Kodu:

package ondortaralik;
import java.util.Scanner;

public class OnDortAralik {
    
    public static void main(String[] args) 
    {
        Scanner scan = new Scanner(System.in);
        
        String sezar;
        System.out.println("Cümle giriniz: ");
        sezar = scan.nextLine();
        
        char[] sezarDizisi = sezar.toCharArray(); 
        
        System.out.println("Öteleme indexi gir: "); 
        int oteleme = scan.nextInt();
        
        for(int i=0; i<sezarDizisi.length; i++)          {             int asciiSirasi = (int)sezarDizisi[i];                           if(asciiSirasi == 32)                 sezarDizisi[i] = ' ';              else             {                 if(asciiSirasi >=65 && asciiSirasi <=90)                 {                     if((asciiSirasi+oteleme) >90)
                        sezarDizisi[i] = (char) (((asciiSirasi+oteleme)%90) + 64);
                    else
                        sezarDizisi[i] = (char) (asciiSirasi+3);
                }
                
                if(asciiSirasi >=97 && asciiSirasi <=122)                 {                     if((asciiSirasi+oteleme) >122)
                        sezarDizisi[i] = (char) (((asciiSirasi+oteleme)%122) + 96 );
                    else
                        sezarDizisi[i] = (char) (asciiSirasi+3);
                }
            }
            
            
        }
       
        
        String yeniCumle = String.valueOf(sezarDizisi);
        
        
        System.out.println("Girilen Cümle: " + yeniCumle);
       
    }
    
    
    
}


Ekran Çıktısı:

 

run:
Cümle giriniz: 
Otelemeli Sezar Uygulanacak Cumle
Öteleme indexi gir: 
5
Girilen Cümle: Rwhohphol Vhedu Xdjxodqdfdn Fxpoh
BUILD SUCCESSFUL (total time: 9 seconds)

 

 

“Ötelemeli Sezar Şifreleme Yöntemi” üzerine bir yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.