Anasayfa > Genel > Basit bir şifreleme

Basit bir şifreleme


Geçenlerde İngilizce sosyal ağların birisinde aşağıdaki resmi görmüştüm.

Resimde Albert Einstein’dan bir alıntı var ancak şifreli. Hatta resmi yükleyen bir ipucu da verince çözmek için ufak bir yazılım yapayım dedim.

decipher_image

Her harfin yeri tam tersi istikamette bulunan bir harfi temsil ediyor hali ile a..z’ye ve z..a bir arama yapmak lazım.

(Tabi ki kodlama yapmadan da harfleri yazıp kendiniz de çözebilirsiniz)

Şöyle bir form olsun:

decipher_form

E biraz da kodlama yapalım:

 

unit main;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ActnList;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
const
    letters =  'abcdefghijklmnopqrstuvwxyz';
    dletters = 'zyxwvutsrqponmlkjihgfedcba';
var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);

  function find_l(let:char):byte;
  var
     x : byte;
  begin
    result := 0;
    for x := low(dletters) to high(dletters) do
      begin
        if dletters[x]=let then
          begin
            result := x;
            break;
          end;
      end;
  end;

var
  sentence , targets: string;
  n : integer;
  place : byte;
begin
  sentence := LowerCase(Memo1.Lines.Strings[0]);
  targets := '';
  for n:= 1 to length(sentence) do
    begin
      if sentence[n]=' ' then
        targets := targets + sentence[n]
        else
          begin

            place := find_l(sentence[n]);
            targets := targets + letters[place];

          end;
    end;
  Memo2.Lines.Add(targets);
end;

end.

 

Ve sonuç:

decipher_runtime

Basit de olsa bir şifrelemeyi çözümlemiş olduk.

 

İyi çözümlemeler…

Kategoriler:Genel
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Görüşlerinizi belirtin

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s