String Üretici & Şifreleyici (Cipher)

string-uretici-sifreleyici-cipher (büyük resim için tıklayın)

uzun bi' aradan sonra merhaba! 

Sezar'ın şifreleme algoritması üzerine düşünürken karakter dizisinden rasgele seçim ile veriyi gizleyen fonksiyonu kodlamak istedim. Birkaç denemeden sonra konu farklı bir boyut ve anlam kazanmaya başladı benim için, öteledim. Cipher sınıfı oluşturan kod bloklarına bakalım!

  • class Cipher{
    • public array $chars,$symbols,$all;
    • public const LIMIT=32;
  • public function __construct(){
    • $this->chars=array_merge(range('A', 'Z'), range('a', 'z'),range(0,9));
    • $this->symbols=str_split("!\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~");
    • $this->all=array_merge($this->chars,$this->symbols);
  • }

Cipher ismindeki sınıfta dizi ve sabit özellikler mevcut. Bu özelliklere yapıcı fonksiyonda değer atadım. chars değişkeni; A ile Z arasındaki büyük ve küçük harfler ile 0-9 arasındaki rakamları barındırıyor. symbols değişkeni ise sembolleri barındırıyor. all değişkeni ise az önce bahsedilen chars ve symbols değişkenlerinin birleştirilmesiyle oluşan üzerinde işlem yapılacak ana değişken. Fonksiyona bakalım…

  • public function primitiveCipher(string $arg):string{
    • $secret="";
    • for($i=0;$i<strlen($arg);$i++){
    • $randchar=array_rand($this->chars,1);
    • $secret.=$this->chars[$randchar];
  • }
  • return $secret;
  • } //function son
  • } //class son

Yukarıdaki fonksiyonda parametre olarak verilen string'in karakter uzunluğu boyunca bu string'in her bir karakteri için chars değişkeninden rasgele seçilen indise karşılık gelen karakter alınacak ve değişkene(secret) aktarılacak. Değişken son olarak geriye döndürülecek. 

Sınıfı kullanalım;

  • $cip=new Cipher();
  • echo $cip->primitiveCipher("say hello to my little function");

güncel kaynak koda github üzerinden erişim için tıklayın.

omurserdarr

Ömürcan Serdar, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Beğeni