Logo Logo
  • Ana Sayfa
  • Hakkında
  • Kategoriler
    • Genel
    • İstatistik
    • Makine Öğrenme
    • Model Geliştirme
    • Sağlık
    • Teknoloji
  • Tüm Yazılarım
  • İletişim

İletişim

  • Email buluttevfik@gmail.com

Site Haritası

  • Ana Sayfa
  • Hakkında
  • İletişim

Sosyal Medya Adresleri

R’da Türk Alfabesi Karakterleri ile Tekrarlı ve Tekrarsız Şifre Üretimi Üzerine Vaka Çalışmaları (Case Studies on with Replacament and without Replacament Password Generation with Turkish Alphabet Characters in R)

  • ANA SAYFA
  • Blog Details
Kasım 2 2019
  • İstatistik

Günümüzde ve hayatın pek çok alanında şifreler yaygın bir şekilde kullanılmaktadır. Güvenli girişi sağlamak ve kullanım izinlerine düzenleme getiren şifreler bankacılık, telefon operatörlerini içine alan telekom sektöründe, veri tabanı uygulamaları gibi adını sayamayacağımız birçok alanda yoğun bir şekilde kullanılmaktadır.

Şifre belirleme işlemi genellikle rastgele üretilen sayılardan oluştuğu gözlenmekle birlikte güvenlik kaygısından dolayı daha fazla kombinasyona ve haneye ihtiyaç duyulmaktadır. Artan dijitalleşme ve her geçen gün gelişen teknoloji sayesinde kullanılan bu şifreleri kırarak kişiler, şirketler ve kamu kurum veya kuruluşları tarafında güvenlik açığı ortaya çıkarmaktadır. Son dönemlerde ülkemize yapılan siber saldırıların yoğunluk kazanması da güvenli ve güçlü şifre oluşturulmasını zorunlu hale getirmiştir.

Şifre uygulamalarına bakıldığında genellikle ya sadece rakamlardan oluşmakta ya da daha güçlü bir şifre oluşturulması adına harf ve rakam kombinasyonlarından oluştuğu görülmektedir. Harf kombinasyonunda ise 26 harften oluşan İngiliz alfabesindeki harflerin yaygın bir şekilde kullanıldığı gözlenmektedir.

Bu çalışmada Cumhuriyetimizin 96. yıl anısına 7 haneli harf ve rakam kombinasyonlarından oluşan Türk alfabesi kullanılarak özgün şifre oluşturma uygulaması yapılmıştır. İstenirse aşağıda verilen R kod bloğu içerisindeki fonksiyonlarla çok daha fazla veya az haneli şifreler üretilebilir. Bu durum tamamen kullanıcının kararına ve ihtiyacına bağlıdır. Şifre kombinasyonunda Türk alfabesindeki harflere de yer verilmesinin nedeni hem çok daha güçlü şifre kombinasyonu oluşturulmasından ve hem de yerli olması amaçlanmasından kaynaklanmaktadır. Türk alfabesinin kullanılmasındaki bir diğer neden, 26 harften oluşan İngiliz alfabesinin aksine Türk alfabesinin 29 harften oluşuyor olmasıdır. Bu durum çok daha fazla kombinasyonda güvenli şifre oluşturulmasına imkan tanımaktadır.

Örnek uygulamada 7 haneli şifre oluşturmada kullanılan harf seti Tablo 1’de verilmiştir.

Tablo 1. Harf ve Rakamlar

Şifre oluşturma adımında rakam olarak belirlenen set ise 0’dan 9 (dahil)’a kadar olan rakamlardan oluşmaktadır.

Her bir haneye harflerin ve/veya rakamların atanmasında tekrarlı örneklem seçim tekniği (sampling technique with replacement) ve tekrarsız örneklem seçim tekniği (sampling technique without replacement) kullanılarak iki farklı 7 haneli şifre oluşturma uygulaması yapılmıştır.

İlk şifre oluşturma uygulaması tekrarlı örneklem seçim tekniği kullanılarak yapılmıştır. Örnek uygulamaya ilişkin R kod bloğu aşağıda verilmiştir.

Tekrarlı Şifre Uygulaması İçin R Kod Bloğu-1

# Gelişmiş ve esnek tablo (data frame) oluşturmak için.
library(tibble)

#Elde edilen sonucu sabitlemek, diğer bir deyişle kod bloğunun her çalıştırılmasında aynı sonucu almak için
set.seed(1923)

#Türk Alfabesinde 1'den 29'a kadar ID (sıra) numarası atayarak harfleri tablo formatında vermek için

Harf<-tibble(ID=1:29, Alfabe=c("A","B", "C", "Ç", "D", "E","F","G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z"))

X1<-sample(Harf$Alfabe, 1, replace = T)#Harf tablosundan Alfabe adlı değişken veri setinin elemanları içerisinden tekrarlı örneklem seçim tekniği kullanılarak harf seçimi yapmak için.

X2<-sample(0:9, size=1, replace= T)#0'dan 9 (dahil)'a  kadar olan rakam seti içerisinden tekrarlı örneklem seçim tekniği kullanılarak rakam seçmek için.

X3<-sample(Harf$Alfabe, 1, replace = T)#Harf tablosundan Alfabe adlı değişken veri setinin elemanları içerisinden tekrarlı örneklem seçimi yapmak için.

X4<-sample(0:9, size=1, replace= T)#0'dan (dahil)'a  kadar olan rakam seti içerisinden tekrarlı örneklem seçim tekniği kullanılarak rakam seçmek için.

X5<-sample(0:9, size=1, replace= T)#0'dan 9 (dahil)'a kadar olan rakam seti içerisinden tekrarlı örneklem seçim tekniği kullanılarak rakam seçmek için.

X6<-sample(0:9, size=1, replace= T)#0'dan 9 (dahil)'a kadar olan rakam seti içerisinden tekrarlı örneklem seçim tekniği kullanılarak rakam seçmek için.

X7<-sample(0:9, size=1, replace= T)#0'dan 9 (dahil)'a kadar olan rakam seti içerisinden tekrarlı örneklem seçim tekniği kullanılarak rakam seçmek için.

hane1<-sample(c(X1, X2, X3, X4, X5, X6, X7), 1, replace= T)

hane2<-sample(c(X1, X2, X3, X4, X5, X6, X7), 1, replace= T)

hane3<-sample(c(X1, X2, X3, X4, X5, X6, X7), 1, replace= T)

hane4<-sample(c(X1, X2, X3, X4, X5, X6, X7), 1, replace= T)

hane5<-sample(c(X1, X2, X3, X4, X5, X6, X7), 1, replace= T)

hane6<-sample(c(X1, X2, X3, X4, X5, X6, X7), 1, replace= T)

hane7<-sample(c(X1, X2, X3, X4, X5, X6, X7), 1, replace= T)

#Elde edilen şifrenin 7 haneli olarak birarada gözükmesi için

sifre<-paste0("Yedi Haneli Şifreniz:",hane1, hane2, hane3, hane4, hane5, hane6, hane7)

sifre

Yukarıdaki R kod bloğunun run (CTRL + ALT + I) edilmesiyle elde edilen şifre aşağıda verilmiştir.

Tekrarlı Şifre Uygulaması Kod Bloğu Sonucu-1 (Output-1)

"Yedi Haneli Şifreniz:990M981"

Yukarıdaki tekrarlı 7 haneli şifre oluşturma uygulamasına alternatif olarak hazırlanan diğer bir R kod bloğu, R’da fonksiyon (function) özelliği kullanılarak aşağıda verilmiştir.

Tekrarlı Şifre Uygulaması İçin R Kod Bloğu-2


#Elde edilen sonucu sabitlemek, diğer bir deyişle kod bloğunun her çalıştırılmasında aynı sonucu almak için

set.seed(96)

# Gelişmiş ve esnek tablo (data frame) oluşturmak için.
library(tibble)

#Görevleri yapmak üzere tanımlanan fonksiyon

tekrarli_sifre <- function(uzunluk, satir_sayisi){

  tablo<-cbind(1:satir_sayisi,matrix(ncol=0,nrow=satir_sayisi))

  rakam <- 0:9

  harf <- c("A","B", "C", "Ç", "D", "E","F","G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z")#Türk Alfabesinde 1'den 29'a kadar ID (sıra) numarası atayarak harfleri tablo formatında vermek için

  birlesik <- c(rakam, harf)

  olasılık <- c(rep(10/39, 10), rep(29/39, 29))#rakamların ve harflerin popülasyon içindeki oranı: bu oranlar örneklem seçiminde olasılık (prob) değerlerinin belirlenmesi için yapılmıştır.
  sifre<-replicate(nrow(tablo),paste0(sample(birlesik, uzunluk, TRUE, prob = olasılık), collapse = ""))#örneklem seçim tekniği olarak (T=TRUE) tekrarlı olan alınmıştır.
  tablo<-tibble(Sıra=1:satir_sayisi, Şifreleriniz=sifre)#sıra numarası ile birlikte belirlenen şifreleri tablo formatında vermek için.
  return(tablo)
}
tekrarli_sifre(uzunluk = 7, satir_sayisi = 10)# tanımlanan fonksiyona göre 10 satırlık ve 7 haneli şifre oluşturulur.

Yukarıdaki R kod bloğunun run (CTRL + ALT + I) edilmesiyle elde edilen 10 adet şifre aşağıda verilmiştir.

Tekrarlı Şifre Uygulaması Kod Bloğu Sonucu-2 (Output-2)

Sıra  Şifreleriniz
1	Ğ32U7Z5			
2	NECVU3I			
3	IKINGMT			
4	GÜRLIR7			
5	5BGCZKH			
6	Ğ79ÖBÇS			
7	YYEGUVB			
8	JBUPCMY			
9	ZARLFUL			
10	51İDFŞH

İstenirse yukarıdaki kod bloğundaki fonksiyonla daha uzun (daha çok haneli) ve daha çok sayıda (satır olarak) şifre üretilebilir. Söz gelimi tekrarli_sifre(uzunluk = 10, satir_sayisi = 100) fonksiyonu yazılmış olursa 10 haneli 100 satırlık şifre oluşturulmuş olur. R kod bloğundaki “set.seed()” fonksiyonu kaldırıldıktan sonra run (CTR + ALT + I) ederek her defasında yeni şifreler üretebilirsiniz.

İlk şifre oluşturma uygulaması tekrarlı örneklem seçim tekniği kullanılarak yukarıda yapılmıştı. Şimdi ise tekrarsız örneklem seçim tekniği kullanılarak 7 haneli şifre uygulaması yapılmıştır. Örnek uygulamaya ilişkin R kod bloğu aşağıda verilmiştir. Bir önceki kod bloğu içinde kullanılan fonksiyon ve onu oluşturan parametreler açıklandığından aşağıdaki kod bloğunda bu açıklamalara tekrar yer verilmemiştir.

Tekrarsız Şifre Uygulaması İçin R Kod Bloğu-3

set.seed(1923)
library(tibble)
tekrarsiz_sifre <- function(uzunluk, satir_sayisi){
  tablo<-cbind(1:satir_sayisi,matrix(ncol=0,nrow=satir_sayisi))
  rakam <- 0:9
  harf <- c("A","B", "C", "Ç", "D", "E","F","G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z")
  birlesik <- c(rakam, harf)
  olasılık <- c(rep(10/39, 10), rep(29/39, 29))
  sifre<-replicate(nrow(tablo),paste0(sample(birlesik, uzunluk, FALSE, prob = olasılık), collapse = ""))
  tablo<-tibble(Sıra=1:satir_sayisi, Şifreleriniz=sifre)
  return(tablo)
}
tekrarsiz_sifre(uzunluk = 7, satir_sayisi = 10)

Yukarıdaki R kod bloğunun run (CTRL + ALT + I) edilmesiyle elde edilen tekrarsız 10 adet şifre aşağıda verilmiştir.

Tekrarsız Şifre Uygulaması Kod Bloğu Sonucu-3 (Output-3)

Sıra  Şifreleriniz
1	ÜRHŞP72			
2	7OÜÇLHG			
3	6MDĞZCE			
4	57İFÜTÖ			
5	26KCRNU			
6	AJÜPTFS			
7	UR3SDP8			
8	GJKCNFE			
9	TONADİS			
10	4LĞDYRP

İhtiyaç duyulması halinde yukarıdaki kod bloğundaki fonksiyonla daha uzun (daha çok haneli) ve daha çok sayıda (satır olarak) şifre üretilebilir. Söz gelimi tekrarsiz_sifre(uzunluk = 9, satir_sayisi = 50) fonksiyonu yazılmış olursa 9 haneli 50 satırlık tekrarsız şifre oluşturulmuş olur. R kod bloğundaki “set.seed()” fonksiyonu kaldırıldıktan sonra run (CTR + ALT + I) ederek her defasında yeni şifreler üretebilirsiniz.

Özetle, şifre belirleme tekniği olarak iki farklı örneklem seçim tekniği kullanılarak 7 haneli şifre oluşturma uygulaması yapılmıştır. Ancak tekrarlı seçim tekniği kullanılarak üretilecek şifre adeti tekrarsız seçime göre çok daha fazla olması olasıdır. Ancak istenirse yukarıdaki örnekte de olduğu gibi tekrarsız seçim tekniği de kullanılarak şifre üretilebilir.

Yapılan çalışma yapacağınız çalışmalara rahatlıkla uyarlanabilme özelliği taşıdığından tek yapılması gereken şey, kod bloğu içerisindeki fonksiyonların ihtiyacınıza uygun (şifrenin kaç haneden oluşacağı) düzenlenmesidir.

Faydalı olması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Saygılarımla.

Not: Emeğe saygı adına, bu sitede yer alan çalışmanın başka bir ortamda paylaşılması halinde alındığı yer adının belirtilmesini rica ederim.

Note: For the sake of respect for labor, I kindly ask you to indicate the name of the place where the work on this site is shared in another environment.

Yararlanılan Kaynak

https://www.r-project.org/

https://tevfikbulut.com/2019/10/30/microsoft-excelde-turk-alfabesi-karakterleri-ile-sifre-uretimi-uzerine-bir-vaka-calismasi-a-case-study-on-password-generation-with-turkish-alphabet-characters-in-microsoft-excel/

https://www.listendata.com/

https://www.tutorialspoint.com/

Önceki yazı Sonraki Yazı
FunctionPasswordPassword GenerationRTekrarlı SeçimTekrarsız SeçimTURKEYTurkish Alphabet CharactersWith replamenentWithout replacement

Yorum Yaz Cevabı iptal et

Son Yazılar

  • Kanada Sağlık Sisteminde Bekleme Süreleri
  • Araştırma Metodolojisi Notları-II
  • Araştırma Metodolojisi Notları-I
  • Microsoft Excel’de Bulut Endeks-Beta [BE-β] Simülasyonu
  • R’da Statik ve Dinamik Haritalama Vaka Çalışmaları: Türkiye Örneği

Son Yorumlar

  1. Küresel İnovasyon Endeksi 2021 Yılı Raporu ve Türkiye - winally.com - Küresel İnovasyon Endeksi’nde Türkiye Ne Durumda?
  2. R’da Birliktelik Kuralları | canözkan - Apriori Algoritması Üzerine Bir Vaka Çalışması: A Case Study on Apriori Algorithm
  3. Tevfik BULUT - Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python
  4. Ahmet Aksoy - Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python
  5. Tevfik BULUT - Z Tablosuna Göre Güven Aralığının Hesaplanmasına Yönelik Bir Simülasyon Çalışması: A Simulation Study for Calculating Confidence Interval by Z Table

Arşivler

  • Ocak 2023
  • Ekim 2022
  • Eylül 2022
  • Nisan 2022
  • Mart 2022
  • Ekim 2021
  • Eylül 2021
  • Ağustos 2021
  • Temmuz 2021
  • Haziran 2021
  • Mayıs 2021
  • Nisan 2021
  • Şubat 2021
  • Ocak 2021
  • Aralık 2020
  • Kasım 2020
  • Ekim 2020
  • Eylül 2020
  • Ağustos 2020
  • Temmuz 2020
  • Haziran 2020
  • Mayıs 2020
  • Nisan 2020
  • Mart 2020
  • Şubat 2020
  • Ocak 2020
  • Aralık 2019
  • Kasım 2019
  • Ekim 2019
  • Eylül 2019
  • Ağustos 2019
  • Mayıs 2019
  • Şubat 2019
  • Aralık 2018
  • Eylül 2018
  • Ağustos 2018
  • Temmuz 2018
  • Mayıs 2018
  • Nisan 2018
  • Ekim 2017
  • Temmuz 2017
  • Haziran 2017
  • Mayıs 2017
  • Ocak 2017

Kategoriler

  • Genel
  • İstatistik
  • Makine Öğrenme
  • Model Geliştirme
  • Sağlık
  • Teknoloji

Kategoriler

  • Genel
  • İstatistik
  • Makine Öğrenme
  • Model Geliştirme
  • Sağlık
  • Teknoloji

Etiketler

Accuracy Basit Tesadüfi Örnekleme Bernoulli Olasılık Dağılımı Confusion Matrix Coronavirus Doğruluk Doğruluk Oranı Dünya Sağlık Örgütü EDA Epidemi Epidemiyology Epidemiyoloji Exploratory Data Analysis Exploratory Data Analysis (EDA) F1 Forecast Keşifsel Veri Analizi Kitle Olasılık Fonksiyonu Koronavirüs Koronavirüs Salgını Olasılık Olasılıklı Örneklem OSB Pandemi Point Estimation Point Forecast Prevalance Prevalans Probability Sampling R Recall Salgın Sağlık Bakanlığı Simple Random Sampling Tahmin TBATS TURKEY TÜRKİYE Veri Madenciliği WHO World Health Organization Yapay Zeka ÇKKV Örneklem Örneklem Büyüklüğü
Logo

Burada, gazete ve dergilerde yayınlanan çalışmalarımın tamamı çalışmakta olduğum kurumdan bağımsız olarak özel hayatımda yaptığım çalışmalardır. Dolayısıyla, burada yer alan çalışmalardan emeğe saygı adına kaynak gösterilmesi suretiyle azami ölçüde herkes yararlanabilir.

Site Haritası

  • Ana Sayfa
  • Hakkında
  • Blog
  • İletişim

Linkler

  • winally.com

Bana Ulaşın

Bu sayfa, bazı temel bilgilerin ve bir iletişim formunun yer aldığı bir iletişim sayfasıdır. Suç teşkil edecek, yasadışı, tehditkar, rahatsız edici, hakaret ve küfür içeren, aşağılayıcı, küçük düşürücü, kaba, müstehcen, ahlaka aykırı, kişilik haklarına zarar verici ya da benzeri niteliklerde içeriklerden doğan her türlü mali, hukuki, cezai, idari sorumluluk içeriği gönderen Kişilere aittir.

  • Email: buluttevfik@gmail.com

© Copyright 2022 Tevfik Bulut