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.

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Beğeni

Toplam Beğeni Sayısı: 1


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)