Creativity is just connecting things. When you ask creative people how they did something, they feel a little guilty because they didn’t really do it, they just saw something. It seemed obvious to them after a while. That’s because they were able to connect experiences they’ve had and synthesize new things. Steve Jobs
In this study, it is aimed to create awareness in the subject area by making password generation practices with both English and Turkish characters.
R’daki bu çalışmada hem Türkçe hem de ingilizce karakterlerle her iki dilde şifre üretme algoritması yazılmıştır. Üretilen fonksiyonlar üzerinden hem ingilizce hem de Türkçe dilinde istenilen hanede ve istenilen sayıda gerek tablo gerekse vektör formatında şifre üretilebilmektedir.
kütüphane<-c("dplyr","tibble","tidyr","readxl", "writexl", "kableExtra", "report", "citation", "rmarkdown")
yükle<-sapply(kütüphane, require, character.only = TRUE, warn.conflicts = FALSE)
#Kütüphane yüklenme durumunu gösteren tablo
tibble(Sıra=1:length(kütüphane), Kütüphane=names(yükle), Durumu=as.logical(yükle)) %>% mutate(Durumu=if_else(Durumu==TRUE, "Yüklendi", "Paket Kurulumu Gerekli")) %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Yüklenen Kütüphanelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
Sıra | Kütüphane | Durumu |
---|---|---|
1 | dplyr | Yüklendi |
2 | tibble | Yüklendi |
3 | tidyr | Yüklendi |
4 | readxl | Yüklendi |
5 | writexl | Yüklendi |
6 | kableExtra | Yüklendi |
7 | report | Yüklendi |
8 | citation | Yüklendi |
9 | rmarkdown | Yüklendi |
set.seed(61)
sifre=function(hane=6, adet=5){
for (s in sample(0:9, size=1, replace = F)) {
for(i in sample(LETTERS, size=1, replace = F)){
for(f in sample(0:9, size=1, replace = F)){
for(r in sample(letters, size=1, replace = F)){
for(e in sample(0:9, size=1, replace = F)){
tablo=replicate(paste(sample(c(s,i,f,r,e), size=hane, replace = T), sep="", collapse = ""), n=adet)%>%
as_tibble() %>%
rename(Şifre=value)%>%
mutate("Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Şifre") %>%
select(Sıra,"Şifre", "Hane Sayısı")%>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
}
}
}
}
}
}
#üretilecek şifre adetini ve hanesini yazınız.
sifre(hane=10, adet=25)
Sıra | Şifre | Hane Sayısı |
---|---|---|
1 | jW9W6j69jj | 10 |
2 | 9j9j889899 | 10 |
3 | j88999896W | 10 |
4 | W6WWWWW66W | 10 |
5 | 6668jW9668 | 10 |
6 | 696WWj6W89 | 10 |
7 | 6WW8998j6j | 10 |
8 | 6jjjWj6jj8 | 10 |
9 | j699j98jWW | 10 |
10 | 8W88WW8W9j | 10 |
11 | 6jj88j8696 | 10 |
12 | W86W88699j | 10 |
13 | 9j89jW6988 | 10 |
14 | 86Wj68WjW6 | 10 |
15 | 9j9j9j88Wj | 10 |
16 | W9669j9689 | 10 |
17 | 866Wj6Wj68 | 10 |
18 | WWW698888j | 10 |
19 | 6W8999j9W8 | 10 |
20 | 8W98W6jW8W | 10 |
21 | j9j9WW99j6 | 10 |
22 | 898j696j86 | 10 |
23 | 8jW9W6jW9j | 10 |
24 | 668986W998 | 10 |
25 | 8j8j669896 | 10 |
Buradaki amaç, şifrenin hem hatırlanması hem daha komplike olması sağlanarak daha güçlü olmasının sağlanmasıdır.Aşağıdaki kod bloğunda girilen isim karakterlerinden hareketle şifre oluşturulmuştur. İsimde yer alan harfler küçük ve büyük karakterlere dönüştürülmüş, ardından ise şifre kombinasyonunu daha da güçlendirmek adına kombinasyona rakamlar ile noktalama ve matematiksek operatörleri ilave edilmiştir. Kombinasyonda default olarak Necmi Gülyutmaz isminden hareket edilmiştir. Bu isim varsayımsal olarak alınmıştır. Böyle bir isim var mıdır yok mudur bilmiyorum. Fonksiyona aşağıda isim girilmediği takdirde bu isme göre şifre kombinasyonu üretilecektir anlamına gelmektedir.İsimde tekrarlanan karakterlerden bir tanesi alınmıştır. Burada unique() fonksiyonu kullanılmıştır.İsim vektöründe karakterlere kombinasyonda 3 kat daha yüksek seçilme şansı verilmiştir.Kombinasyonun oluşturulmasında iç içe for döngüleri (nested-for loops) kullanılmıştır.
set.seed(61)
sifre=function(isim="Necmi Gülyutmaz", hane=6, adet=5){
bisim = sub(' ','',isim)
m=strsplit(bisim, "")[[1]]
visim=unique(as.vector(m))
ni=c("!", "#", "$", "%", "&", "(", ")", "*", "+", "-", "/", ":", ";", "<", "=", ">", "?", "@", "[", "^", "_", "{", "|", "}", "~")
for (s in sample(0:9, size=1, replace = F)) {
for(i in sample(tolower(visim), size=1, replace = F)){
for(f in sample(0:9, size=1, replace = F)){
for(r in sample(toupper(visim), size=1, replace = F)){
for(e in sample(ni, size=1, replace = F)){
tablo=replicate(paste(sample(c(s,rep(i,3),f,rep(r,3),e), size=hane, replace = T), sep="", collapse = ""), n=adet)%>%
as_tibble() %>%
rename(Şifre=value)%>%
mutate("Hane Sayısı"=hane, İsim=isim) %>%
add_column(Sıra=1:adet, .before="Şifre") %>%
select(Sıra,İsim, "Şifre", "Hane Sayısı")%>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
}
}
}
}
}
}
#üretilecek şifre için isminizi, şifre adetini ve hanesini yazınız.
sifre(hane=6, adet=10)
Sıra | İsim | Şifre | Hane Sayısı |
---|---|---|---|
1 | Necmi Gülyutmaz | üü6ü+ü | 6 |
2 | Necmi Gülyutmaz | UUüU9ü | 6 |
3 | Necmi Gülyutmaz | 9UüüUü | 6 |
4 | Necmi Gülyutmaz | 9U+üü+ | 6 |
5 | Necmi Gülyutmaz | Uüüü+6 | 6 |
6 | Necmi Gülyutmaz | üU6+69 | 6 |
7 | Necmi Gülyutmaz | üü669+ | 6 |
8 | Necmi Gülyutmaz | ü6ü+ü6 | 6 |
9 | Necmi Gülyutmaz | U9Uü+ü | 6 |
10 | Necmi Gülyutmaz | 6üüüUU | 6 |
Buradaki amaç, şifrenin hem hatırlanması hem daha komplike olması sağlanarak daha güçlü olmasının sağlanmasıdır.Aşağıdaki kod bloğundaki şifre kombinasyonu, büyük önderimiz Mustafa Kemal Atatürk’ün ismindeki karakterlerden oluşmaktadır.Burada üretilen şifre kombinasyonu 10 haneden oluşmaktadır.Burada noktalama işaretlerine ve matematiksel operatörlere kombinasyonda bir önceki örneğe göre 2 kat daha yüksek seçilme şansı verilmiştir.
set.seed(1938)
sifre=function(isim="Necmi Gülyutmaz", hane=6, adet=5){
bisim = sub(' ','',isim)
m=strsplit(bisim, "")[[1]]
visim=unique(as.vector(m))
ni=c("!", "#", "$", "%", "&", "(", ")", "*", "+", "-", "/", ":", ";", "<", "=", ">", "?", "@", "[", "^", "_", "{", "|", "}", "~")
for (s in sample(0:9, size=1, replace = F)) {
for(i in sample(tolower(visim), size=1, replace = F)){
for(f in sample(0:9, size=1, replace = F)){
for(r in sample(toupper(visim), size=1, replace = F)){
for(e in sample(ni, size=1, replace = F)){
tablo=replicate(paste(sample(c(s,rep(i,3),f,rep(r,3),rep(e,2)), size=hane, replace = F), sep="", collapse = ""), n=adet)%>%
as_tibble() %>%
rename(Şifre=value)%>%
mutate("Hane Sayısı"=hane, İsim=isim) %>%
add_column(Sıra=1:adet, .before="Şifre") %>%
select(Sıra,İsim, "Şifre", "Hane Sayısı")%>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
}
}
}
}
}
}
#üretilecek şifre için isminizi, şifre adetini ve hanesini yazınız.
sifre(isim="Mustafa Kemal Atatürk", hane=10, adet=10)
Sıra | İsim | Şifre | Hane Sayısı |
---|---|---|---|
1 | Mustafa Kemal Atatürk | kR}k41kRR} | 10 |
2 | Mustafa Kemal Atatürk | k1}R4kR}Rk | 10 |
3 | Mustafa Kemal Atatürk | R4k1RR}kk} | 10 |
4 | Mustafa Kemal Atatürk | }kkR1}kRR4 | 10 |
5 | Mustafa Kemal Atatürk | 1}R4kkR}kR | 10 |
6 | Mustafa Kemal Atatürk | kk14RRk}R} | 10 |
7 | Mustafa Kemal Atatürk | 41Rkk}R}kR | 10 |
8 | Mustafa Kemal Atatürk | kRR}}1k4Rk | 10 |
9 | Mustafa Kemal Atatürk | R1kk4kR}R} | 10 |
10 | Mustafa Kemal Atatürk | k}1Rkk4R}R | 10 |
Aşağıdaki kod bloğundaki şifre kombinasyonu, büyük önderimiz Mustafa Kemal Atatürk’ün ismindeki karakterlerden oluşmaktadır.Burada üretilen şifre kombinasyonu 10 haneden oluşmaktadır.Aşağıdaki kod bloğunda for döngüleri kullanılmamıştır.
set.seed(1938)
sifre=function(isim="Necmi Gülyutmaz", hane=6, adet=5){
bisim = sub(' ','',isim)
m=strsplit(bisim, "")[[1]]
visim=unique(as.vector(m))
ni=c("!", "#", "$", "%", "&", "(", ")", "*", "+", "-", "/", ":", ";", "<", "=", ">", "?", "@", "[", "^", "_", "{", "|", "}", "~")
r=0:9
kh=tolower(visim)
bh=toupper(visim)
tablo=replicate(paste(sample(c(ni,r,kh,bh), size=hane, replace = F), sep="", collapse = ""), n=adet)%>%
as_tibble() %>%
rename(Şifre=value) %>%
mutate("Hane Sayısı"=hane, İsim=isim) %>%
add_column(Sıra=1:adet, .before="Şifre") %>%
select(Sıra,İsim, "Şifre", "Hane Sayısı")%>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
}
#üretilecek şifre için isminizi, şifre adetini ve hanesini yazınız.
sifre(isim="Mustafa Kemal Atatürk", hane=10, adet=10)
Sıra | İsim | Şifre | Hane Sayısı |
---|---|---|---|
1 | Mustafa Kemal Atatürk | St@ }%*2># | 10 |
2 | Mustafa Kemal Atatürk | _/ MTMS;&~ | 10 |
3 | Mustafa Kemal Atatürk | <L!MrÜKt : | 10 |
4 | Mustafa Kemal Atatürk | 6*>;m%e#$0 | 10 |
5 | Mustafa Kemal Atatürk | 5_|m<(-^Ku | 10 |
6 | Mustafa Kemal Atatürk | Ü&4?tE:7RS | 10 |
7 | Mustafa Kemal Atatürk | 9US!a(Ü0kl | 10 |
8 | Mustafa Kemal Atatürk | 7S=:MT6+U! | 10 |
9 | Mustafa Kemal Atatürk | %U}A<m=|l | 10 |
10 | Mustafa Kemal Atatürk | Kk@s u#^+e | 10 |
Aşağıdaki kod bloğundaki şifre kombinasyonları, Türkiye tarihinde derin izler bırakan isimlerin karakterlerden oluşmaktadır.Burada üretilen şifre kombinasyonu 10 haneden oluşmaktadır.
isim_vektörü=c("Cahit Arf", "Muhsin Yazıcıoğlu", "Mustafa Kemal Atatürk", "Aziz Sancar", "Tevfik Fikret", "Mehmet Akif Ersoy", "Namık Kemal", "Sabiha Gökçen")
set.seed(1938)
sifre=function(isim_vektörü, hane=6){
for (i in isim_vektörü) {
bisim = sub(' ','',i)
m=strsplit(bisim, "")[[1]]
visim=unique(as.vector(m))
ni=c("!", "#", "$", "%", "&", "(", ")", "*", "+", "-", "/", ":", ";", "<", "=", ">", "?", "@", "[", "^", "_", "{", "|", "}", "~")
r=0:9
kh=tolower(visim)
bh=toupper(visim)
vektor=paste(i," için ",hane, " haneli şifre:", paste(sample(c(kh,bh,r,ni), size=hane, replace = T), sep="", collapse = ""), sep="")
print(vektor)
}
}
#üretilecek şifre için yukarıdaki isim vektörünü belirleyiniz ve şifre hanesini yazınız.
sifre(isim_vektörü, hane=10)
## [1] "Cahit Arf için 10 haneli şifre:;1^7if#Fa|"
## [1] "Muhsin Yazıcıoğlu için 10 haneli şifre:Yc*_>;=ğiC"
## [1] "Mustafa Kemal Atatürk için 10 haneli şifre:rm/+~r8{+1"
## [1] "Aziz Sancar için 10 haneli şifre:rRA@s?zi9C"
## [1] "Tevfik Fikret için 10 haneli şifre:f0$24>IkT1"
## [1] "Mehmet Akif Ersoy için 10 haneli şifre:{|tY84;m;E"
## [1] "Namık Kemal için 10 haneli şifre:>[l)Eı(Nnı"
## [1] "Sabiha Gökçen için 10 haneli şifre:^1B%I0;B~-"
Aşağıdaki örnek uygulamada Türkçe dilinde 12 haneli 10 adet şifre üretilmiştir.Dilerseniz istediğiniz sayıda ve istediğiniz hanede şifre üretebilirsiniz.
set.seed(61)
sifre=function(dil=as.vector("Türkçe"),hane=6, adet=5){
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")
tr <- c(rakam, HARF)
ing<-c(rakam, LETTERS)
if(dil=="Türkçe"){
tablo=replicate(paste(sample(tr, size=hane, replace = T), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
} else { tablo=replicate(paste(sample(ing, size=hane, replace = T), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
}
}
#üretilecek şifre adetini ve hanesini yazınız.
sifre(dil="Türkçe", hane=12, adet=10)
Sıra | Sifre | Dili | Hane Sayısı |
---|---|---|---|
1 | B6JHTAŞ3LS2E | Türkçe | 12 |
2 | ÇRNDÇNBKÇIĞP | Türkçe | 12 |
3 | KUÜEÖU4ARTTL | Türkçe | 12 |
4 | 1G18FTİ0H1Ç0 | Türkçe | 12 |
5 | FVUS0MRH1AD0 | Türkçe | 12 |
6 | MNAYH8ÜFÜBT6 | Türkçe | 12 |
7 | 5OEF3ÜV7N7ES | Türkçe | 12 |
8 | UKBUC77GCJEY | Türkçe | 12 |
9 | VÖMİEC1ABÜ4C | Türkçe | 12 |
10 | UYŞ4FS1ÖNNÜA | Türkçe | 12 |
Aşağıdaki örnek uygulamada ingilizce dilinde 12 haneli 10 adet şifre üretilmiştir.Dilerseniz istediğiniz sayıda ve istediğiniz hanede şifre üretebilirsiniz.
set.seed(61)
sifre=function(dil=as.vector("Türkçe"),hane=6, adet=5){
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")
tr <- c(rakam, HARF)
ing<-c(rakam, LETTERS)
if(dil=="Türkçe"){
tablo=replicate(paste(sample(tr, size=hane, replace = T), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
} else { tablo=replicate(paste(sample(ing, size=hane, replace = T), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
}
}
#üretilecek şifre adetini ve hanesini yazınız.
sifre(dil="İngilizce", hane=12, adet=10)
Sıra | Sifre | Dili | Hane Sayısı |
---|---|---|---|
1 | B6MJXAW3OV2F | İngilizce | 12 |
2 | DUQEDQBNDKIT | İngilizce | 12 |
3 | NYZFSY4AUXXO | İngilizce | 12 |
4 | 1H18GXL0J1D0 | İngilizce | 12 |
5 | GYV0PUJ1AE0P | İngilizce | 12 |
6 | QAJ8ZGZBX65R | İngilizce | 12 |
7 | FG3Z7Q7FVYNB | İngilizce | 12 |
8 | YC77HCMFSPLF | İngilizce | 12 |
9 | C1ABZ4CYW4GV | İngilizce | 12 |
10 | 1SQQZAJIUFEQ | İngilizce | 12 |
sifre fonksiyonu içerisinde dil=“Türkçe” yazılmasa da default olarak Türkçe dilini tanımaktadır.
set.seed(61)
sifre=function(dil=as.vector("Türkçe"),hane=6, adet=5){
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")
tr <- c(rakam, HARF, tolower(HARF))
ing<-c(rakam, LETTERS, letters)
if(dil=="Türkçe"){
tablo=replicate(paste(sample(tr, size=hane, replace = T), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
} else { tablo=replicate(paste(sample(ing, size=hane, replace = T), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
}
}
#üretilecek şifre adetini ve hanesini yazınız.
sifre(dil="Türkçe", hane=12, adet=10)
Sıra | Sifre | Dili | Hane Sayısı |
---|---|---|---|
1 | BJcH3yaRuNDa | Türkçe | 12 |
2 | ğNsÇĞKUpÜlÖA | Türkçe | 12 |
3 | tTavööt18Tüu | Türkçe | 12 |
4 | bh1ğÇ0FVoUSg | Türkçe | 12 |
5 | üMRvD0lsYH8j | Türkçe | 12 |
6 | T65Ff3bESKBU | Türkçe | 12 |
7 | 7d7JEYÖiMİtC | Türkçe | 12 |
8 | 1Ahj4oYŞFvşÖ | Türkçe | 12 |
9 | bNÜAHVĞjöğED | Türkçe | 12 |
10 | NkgD9dLs1d0Y | Türkçe | 12 |
set.seed(61)
sifre=function(dil=as.vector("Türkçe"),hane=6, adet=5){
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")
tr <- c(rakam, HARF, tolower(HARF))
ing<-c(rakam, LETTERS, letters)
if(dil=="Türkçe"){
tablo=replicate(paste(sample(tr, size=hane, replace = T), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
} else { tablo=replicate(paste(sample(ing, size=hane, replace = T), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
}
}
#üretilecek şifre adetini ve hanesini yazınız.
sifre(dil="İngilizce", hane=12, adet=10)
Sıra | Sifre | Dili | Hane Sayısı |
---|---|---|---|
1 | B6MffeJXAvW3 | İngilizce | 12 |
2 | OV2hFDdUxQED | İngilizce | 12 |
3 | dplQByNDKIqT | İngilizce | 12 |
4 | NYwZrFSyggY4 | İngilizce | 12 |
5 | djAuUXXOd1vH | İngilizce | 12 |
6 | v18GXL0emqJ1 | İngilizce | 12 |
7 | glD0GauYVk0P | İngilizce | 12 |
8 | UvJu1yAE0rfP | İngilizce | 12 |
9 | qQAyzbJ8ZGZB | İngilizce | 12 |
10 | pX65RFGj3Za7 | İngilizce | 12 |
Bu kısımda fonksiyona noktalama işaretleri ve matematiksel operatörlerden bazıları dahil edilmiştir.
set.seed(61)
sifre=function(dil=as.vector("Türkçe"),hane=6, adet=5){
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")
ni=c("!", "#", "$", "%", "&", "(", ")", "*", "+", "-", "/", ":", ";", "<", "=", ">", "?", "@", "[", "^", "_", "{", "|", "}", "~")
tr <- c(rakam, HARF, tolower(HARF), ni)
ing<-c(rakam, LETTERS, letters, ni)
if(dil=="Türkçe"){
tablo=replicate(paste(sample(tr, size=hane, replace = T), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
} else { tablo=replicate(paste(sample(ing, size=hane, replace = T), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
}
}
#üretilecek şifre adetini ve hanesini yazınız.
sifre(dil="İngilizce", hane=12, adet=10)
Sıra | Sifre | Dili | Hane Sayısı |
---|---|---|---|
1 | B+MfJ;3&@>dU | İngilizce | 12 |
2 | #QE>dlQ<yD|I | İngilizce | 12 |
3 | NYwZr@S)A!Xd | İngilizce | 12 |
4 | %v^v!18[X}\(# </td> <td style="text-align:left;"> İngilizce </td> <td style="text-align:right;"> 12 </td> </tr> <tr> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> em{1lD0GauYV </td> <td style="text-align:left;"> İngilizce </td> <td style="text-align:right;"> 12 </td> </tr> <tr> <td style="text-align:right;"> 6 </td> <td style="text-align:left;"> k\)PU{%;E0r;y | İngilizce | 12 |
7 | bJ8[<pX65@Gj | İngilizce | 12 |
8 | 3-e-FVNBY=7h | İngilizce | 12 |
9 | 7^=MFbSnPL!@ | İngilizce | 12 |
10 | C1A<mp4=ubW) | İngilizce | 12 |
sifre fonksiyonu içerisine dil=“Türkçe” yazılmasa da default olarak Türkçe dilini tanımaktadır.
set.seed(61)
sifre=function(dil=as.vector("Türkçe"),hane=6, adet=5){
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")
ni=c("!", "#", "$", "%", "&", "(", ")", "*", "+", "-", "/", ":",";", "<", "=", ">", "?", "@", "[", "^", "_", "{", "|", "}", "~")
tr <- c(rakam, HARF, tolower(HARF), ni)
ing<-c(rakam, LETTERS, letters, ni)
if(dil=="Türkçe"){
tablo=replicate(paste(sample(tr, size=hane, replace = T), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
} else { tablo=replicate(paste(sample(ing, size=hane, replace = T), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
}
}
#üretilecek şifre adetini ve hanesini yazınız.
sifre(dil="Türkçe", hane=12, adet=10)
Sıra | Sifre | Dili | Hane Sayısı |
---|---|---|---|
1 | B$JcH)3_y:-a | Türkçe | 12 |
2 | RuND-ağN*s^Ç | Türkçe | 12 |
3 | ?ĞKUpÜl:Ö!At | Türkçe | 12 |
4 | T_avö<öt18;T | Türkçe | 12 |
5 | @üubh>1ğÇ0FV | Türkçe | 12 |
6 | oUSgüMR>v)D0 | Türkçe | 12 |
7 | l{|)sYH8;*jT | Türkçe | 12 |
8 | 65}:Ff3%b|%E | Türkçe | 12 |
9 | SKBU+7d7<+JE | Türkçe | 12 |
10 | YÖiMİt:C1A*h | Türkçe | 12 |
BU kısımda rakamların şifre kombinasyonunda görülme sıklığını artırmak için ilk olarak Türkçe şifre üretimesine esas karakter seti üzerinden olasılık oranı hesaplanmıştır. Aşağıdaki kod bloğunda ilk olarak tr vektörünün uzunluğu hesaplanmıştır. Bunun için yazılan fonksiyon length(tr)=93’tür. Bu sonuç, tr vektörünün eleman sayısının 93 olduğu anlamına gelmektedir. Bu vektör içerisindeki rakamlarının sayısı ise 10’dur. Amaç burada rakamların görülme sıklığını artırmak olduğundan rakamların olasılığı her bir rakam için 5/93 olarak belirlenmiştir. Toplamda rakamların olasılığı, 10 adet olduğu 10/93 olur. Kalan olasılıklar ise diğer vektör elemanlarına paylaştırılmıştır. tr vektörü içerisindeki diğer elemanların yani 83 elemanın her birinin olasılığı ise (43/93)/83 olarak alınmıştır. Vektör içerisindeki her bir elemana görülme olasılıklarını atamak için rep() fonksiyonu kullanılmıştır. Vektör içerisinde tanımlanan olasılıkları şöyledir: c(rep(5/93,10),rep((43/93)/83,83)). sum(c(rep(5/93,10),rep((43/93)/83,83))) fonksiyonu ile olasılıkların toplamı bire eşit olmak zorundadır. Burada da sonuç 1’e eşittir.
İngilizce şifre kombinasyonunda ise durum alfabedeki karakter sayısından dolayı biraz farklı ancak hesaplanması aynıdır. İngilizce şifre elemanlarının bulunduğu ing vektörünün uzunluğu length(ing)=87’dir. Amaç burada da rakamlarının şifre kombinasyonunda görülme sıklığını artırmak için olasılıkları yüksek tutulmuştur. Bu vektör içerisinde de rakamlarının sayısı ise 10’dur. Rakamların olasılığı her bir rakam için 4/87 olarak belirlenmiştir. ing vektörü içerisindeki diğer elemanların yani 77 elemanın her birinin olasılığı ise (47/87)/77 olarak alınmıştır. Vektör içerisindeki her bir elemana görülme olasılıklarını atamak için rep() fonksiyonu kullanılmıştır. Vektör içerisinde tanımlanan olasılıkları şöyledir: c(rep(4/87,10),rep((47/87)/77,77)). sum(c(rep(4/87,10),rep((47/87)/77,77))) fonksiyonu ile olasılıkların toplamı bire eşit olmak zorundadır. Burada da sonuç 1’e eşittir.
Tabi biz burada rakamların şifre kombinasyonundaki görülme olasılıklarını artırdık. İstersek diğer elemanların ya da eleman setlerinin aynı mantıkla görülme olaılıklarını artırabiliriz.
sifre fonksiyonu içerisine dil=“Türkçe” yazılmasa da default olarak Türkçe dilini tanımaktadır.
set.seed(61)
sifre=function(dil=as.vector("Türkçe"),hane=6, adet=5){
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")
ni=c("!", "#", "$", "%", "&", "(", ")", "*", "+", "-", "/", ":",";", "<", "=", ">", "?", "@", "[", "^", "_", "{", "|", "}", "~")
tr <- c(rakam, HARF, tolower(HARF), ni)
tr_olasilik<-c(rep(5/length(tr),10),rep((43/length(tr))/83,83))
ing<-c(rakam, LETTERS, letters, ni)
ing_olasilik<-c(rep(4/length(ing),10),rep((37/length(ing))/77,77))
if(dil=="Türkçe"){
tablo=replicate(paste(sample(tr, size=hane, replace = T, prob=tr_olasilik), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
} else { tablo=replicate(paste(sample(ing, size=hane, replace = T, prob=ing_olasilik), sep="", collapse = ""), n=adet) %>%
as_tibble() %>%
rename(Sifre=value)%>%
mutate(Dili=dil, "Hane Sayısı"=hane) %>%
add_column(Sıra=1:adet, .before="Sifre") %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Üretilen Şifrelerin Listesi")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black")
return(tablo)
}
}
#üretilecek şifre adetini ve hanesini yazınız.
sifre(dil="Türkçe", hane=12, adet=10)
Sıra | Sifre | Dili | Hane Sayısı |
---|---|---|---|
1 | 7>7220Ö55368 | Türkçe | 12 |
2 | İ9;6/0765N55 | Türkçe | 12 |
3 | Y3{k575[P@TT | Türkçe | 12 |
4 | f542OÖ693~F1 | Türkçe | 12 |
5 | Abp3by327dp5 | Türkçe | 12 |
6 | )256J25ç?;8s | Türkçe | 12 |
7 | _7Kvtc09392I | Türkçe | 12 |
8 | g8Kh&899V!83 | Türkçe | 12 |
9 | 7-fç6I4}81G_ | Türkçe | 12 |
10 | r12039067a92 | Türkçe | 12 |
Özetle, yapılan çalışmayla hem İngilizce hem de Türkçe karakterleri ile şifre üretme uygulamaları yapılarak konu alanında farkındalık oluşturulması amaçlanmıştır.
Faydalı olması dileğiyle.
Bilimle ve teknolojiyle kalınız.
cite_packages() %>%
as_tibble() %>%
rename("Referanslar"=value) %>%
mutate(ID = paste("[",row_number(),"]",sep="")) %>%
select(ID, Referanslar) %>%
kable(caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: left;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Kaynakça")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16)
ID | Referanslar |
---|---|
[1] | Dietrich J (2020). citation: Software Citation Tools. R packageversion 0.4.1. |
[2] | Hadley Wickham (2021). tidyr: Tidy Messy Data. R package version 1.1.3. https://CRAN.R-project.org/package=tidyr |
[3] | Hadley Wickham and Jennifer Bryan (2019). readxl: Read Excel Files. R package version 1.3.1. https://CRAN.R-project.org/package=readxl |
[4] | Hadley Wickham, Romain François, Lionel Henry and Kirill Müller (2021). dplyr: A Grammar of Data Manipulation. R package version 1.0.7. https://CRAN.R-project.org/package=dplyr |
[5] | Hao Zhu (2021). kableExtra: Construct Complex Table with ‘kable’ and Pipe Syntax. R package version 1.3.4. https://CRAN.R-project.org/package=kableExtra |
[6] | Jeroen Ooms (2021). writexl: Export Data Frames to Excel ‘xlsx’ Format. R package version 1.4.0. https://CRAN.R-project.org/package=writexl |
[7] | JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang and Richard Iannone (2021). rmarkdown: Dynamic Documents for R. R package version 2.10. URL https://rmarkdown.rstudio.com. |
[8] | Kirill Müller and Hadley Wickham (2021). tibble: Simple Data Frames. R package version 3.1.3. https://CRAN.R-project.org/package=tibble |
[9] | Makowski, D., Ben-Shachar, M.S., Patil, I. & Lüdecke, D. (2020). Automated Results Reporting as a Practical Tool to Improve Reproducibility and Methodological Best Practices Adoption. CRAN. Available from https://github.com/easystats/report. doi: . |
[10] | R Core Team (2021). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/. |