Provided by: manpages-tr_2.0.6-2_all bug

İSİM

       crypt - parola ve veri şifrelemesi
       crypt_r - parola ve veri şifrelemesi
       crypt_rn - parola ve veri şifrelemesi
       crypt_ra - parola ve veri şifrelemesi
       crypt_gensalt - parola ve veri şifrelemesi
       crypt_gensalt_rn - parola ve veri şifrelemesi
       crypt_gensalt_ra - parola ve veri şifrelemesi

BİLDİRİM

       #include _XOPEN_SOURCE
       #include <unistd.h>

       char *crypt (const char *key, const char *setting);

       #include _GNU_SOURCE
       #include <crypt.h>

       char *crypt_r (const char *key, const char *setting, struct crypt_data *data);

       #include _QW_SOURCE
       #include <crypt.h>

       char *crypt_rn (const char *key, const char *setting, void *data, int size);

       char *crypt_ra (const char *key, const char *setting, void **data, int *size);

       char *crypt_gensalt (const char *prefix, unsigned long count, const char *input, int
                           size);

       char *crypt_gensalt_rn (const char *prefix, unsigned long count, const char *input, int
                              size, char output, int output_size);

       char *crypt_gensalt_ra (const char *prefix, unsigned long count, const char *input, int
                              size);

AÇIKLAMA

       crypt, crypt_r, crypt_rn ve crypt_ra işlevleri, bir tuz ve muhtemelen diğer değişkenleri
       de aktarmak için kullanılan bir dizi desteklenen yöntemden biriyle istendiği şekilde
       anahtarın kriptografik aş işlevini hesaplar.

       crypt_r, crypt_rn ve crypt_ra işlevleri crypt’ten farklı olarak evrelidir. Bu işlevler
       sonuçlarını ve muhtemelen özel verilerini, bir uygulama tarafından kendilerine belirtilen
       size boyutundaki bir data alanına ve/veya dinamik olarak ayırdıkları belleğe yerleştirir.
       Bazı aşlama algoritmaları veri alanını, çağrılar arasında hesaplanmış ara değerleri
       önbelleğe almak için kullanabilir. Bu sebeple, uygulamalar ilk kullanımdan önce veri
       alanını doğru bir şekilde ilklendirmelidir. crypt_r yalnızca data->initialized’in sıfırla
       ilklendirilmesini gerektirir; crypt_rn ve crypt_ra için tüm data alanının sıfırlarla
       doldurulması veya crypt_ra durumunda *data’nın NULL olması gerekir. Eğer crypt_ra, talep
       edilen aşlama algoritmasını NULL *data veya yeterli olmayan *size ile çağrırırsa gerekli
       bellek dinamik olarak realloc(3) ile ayrılır. Bu sebeple crypt_ra, *data NULL olmadığında
       bir önceki crypt_ra çağrısıyla veya malloc(3) ailesinden bir çağrıyla ayrılan bir alana
       gösterici olmalıdır. crypt_ra ile ayrılan belleğin free(3) ile serbest bırakılması
       gerekir.

       crypt_gensalt, crypt_gensalt_rn, ve crypt_gensalt_ra işlevleri belirtilen prefix öneki
       (aşlama yöntemini belirler), yineleme sayısı count (seçilen yöntem destekliyorsa) ve
       aslında tuz olarak kullanacak en fazla size baytlık kriptografik değerlerden oluşan input
       girdisi ile diğer işlevlerde setting olarak kullanılabilecek bir dizge derler. Eğer
       yineleme sayısı count 0 ise, düşük bir öntanımlı seçilir. Rastgele baytlar
       /dev/urandom’dan elde edilebilir. crypt_gensalt_rn ve crypt_gensalt_ra işlevleri
       crypt_gensalt işlevinden farklı olarak evrelidir. crypt_gensalt_rn, sonuçları output_size
       baytlık output tamponuna yerleştirir. crypt_gensalt_ra ise, sonuçları için bellekte
       dinamik olarak yer ayırır. Bu belleğin free(3) ile serbest bırakılması gerekir.

DÖNÜŞ DEĞERİ

       Başarılı bir şekilde tamamlandığında crypt, crypt_r, crypt_rn ve crypt_ra işlevleri,
       gerçekte kullanılan setting’i ve aşlama işlevinin yazdırılabilir kodlama değerini içeren
       bir dizgeye gösterici döndürür. Dizgenin tamamı, crypt, crypt_r, crypt_rn ve crypt_ra’ya
       yapılan çağrılarda setting olarak, crypt_gensalt, crypt_gensalt_rn ve crypt_gensalt_ra’ya
       yapılan çağrılarda prefix olarak doğrudan kullanılabilir.

       crypt’in hata durumundaki davranışları tam olarak standartlaştırılmamıştır. Bazı
       gerçeklemeler başarısız olamaz (süreç ölmediği sürece; bu durumda birşey döndürelemez),
       diğerleri NULL veya sabit dizge döndürür. Çoğu gerçeklemeler errno değişkenine atama
       yapmaz, bazıları yapar. SUSv2, sadece NULL döndürülmesini ve errno değişkenine atama
       yapılmasını geçerli bir davranış olarak belirtir ve olası tek bir hatayı tanımlar: ENOSYS,
       "işlevsellik bu gerçeklenimde desteklenmiyor". Ne yazık ki, mevcut çoğu uygulama crypt’in
       NULL döndürmesini işlemeye hazır değildir. Aşağıdaki açıklama sadece crypt ve crypt_r’in
       bu gerçeklemesine ve crypt_rn ile crypt_ra işlevlerine karşılık gelir. Bu davranış,
       standartlara, mevcut uygulamalara veya gerçeklenimlere uygun olarak değişebilir.

       crypt ve crypt_r yalnızca geçersiz veya desteklenmeyen bir setting dizgesi aktarıldığında
       başarısız olabilir (ve dönebilir). Bu durumda farklılığı garanti etmek için uzunluğu 13
       karakterden kısa ve setting’den farklı olan sihirli bir dizgeye gösterici döndürür. Bu
       davranış hem yeni parolaları tanımlarken hem de mevcut parola aşlamalarına karşı kimlik
       doğrulaması yaparken crypt’in başarısız olmayacağını kabul eden eski uygulamalar için
       güvenlidir. crypt_rn ve crypt_ra işlevleri hatayı belirtmek için NULL döndürür. Dört
       işlevin tümü, hata olduğunda hata kodunu errno’yu atar.

       crypt_gensalt, crypt_gensalt_rn ve crypt_gensalt_ra işlevleri, setting için derlenen
       dizgeye bir gösterici döndürür veya hata durumunda ise hata errno değişkenine atanıp NULL
       döndürülür.

HATALAR

       EINVAL
           crypt, crypt_r, crypt_rn, crypt_ra: setting geçersiz veya bu gerçekleme tarafından
           desteklenmiyor;

           crypt_gensalt, crypt_gensalt_rn, crypt_gensalt_ra: prefix geçersiz veya bu gerçekleme
           tarafından desteklenmiyorsa; count, talep edilen prefix için geçersiz ise; input
           boyutu size, talep edilen önek prefix ile en küçük geçerli tuz için yeterli değil ise;
           input NULL ise.

       ERANGE
           crypt_ra: sağlanan veri alanı boyutu size, talep edilen aşlama algoritması için
           yeterli değilse.

           crypt_gensalt_rn: output_size, derlenen setting dizgesini tutmak için çok küçükse.

       ENOMEM
           crypt (sadece özgün glibc): (sonraki çağrıların tekrar kullanacağı) çıktı tamponu için
           bellek ayrılamazsa;

           crypt_ra: *data NULL ise veya *size talep edilen aşlama algoritması için yeterli
           değilse ve realloc(3) başarılı olmazsa;

           crypt_gensalt_ra: derlenen setting dizgesi için bellek ayrılamazsa.

       ENOSYS
           crypt (SUSv2): işlevsellik bu gerçeklenimde desteklenmiyorsa;

           crypt, crypt_r (sadece glibc 2.0’dan 2.0.1’e kadar): crypt eklentisi derlenmediyse ve
           setting MD5 temelli algoritmadan başka bir şey istiyorsa.

       EOPNOTSUPP
           crypt, crypt_r (sadece glibc 2.0.2’den 2.1.3’e kadar): crypt eklentisi derlenmediyse
           ve setting MD5 temelli algoritmadan başka bir şey istiyorsa.

AŞLAMA YÖNTEMLERİ

       Gerçeklenen aşlama yöntemleri, özellikle depolama ve kimlik doğrulama için kullanıcı
       parolasını işlemeye yöneliktir. Diğer birçok amaç için en iyi ihtimalle verimsizdir.

       Parola aşlamanın, güçlü parolaların yerine geçmediğini anlamak önemlidir. Parola
       aşlamalarına erişebilen bir saldırganın, aşlamaya karşı aday parolaları denemesi her zaman
       mümkündür. Ancak, parola aşlama yöntemlerinin sahip olabileceği bazı özellikler bu anahtar
       arama saldırılarını biraz daha zorlaştırır.

       Tuz kullanan tüm aşlama yöntemleri aynı anahtar ile birçok aşlama oluşturabilir. Tuzların
       düzgün kullanımı bazı saldırıları yenebilir, örneğin :

        1. Aday parolaların bir denemede birçok aşlama ile denenebilmesi.

        2. Aday parolaların önceden aşlanmış listelerinin kullanılması.

        3. Parolalardan birini gerçekten tahmin etmeden iki kullanıcının (veya tek kullanıcıya
           ait iki hesabın), aynı mı yoksa farklı parolalara mı sahip olduğunu belirleyebilmek.

       Anahtar arama saldırıları, çok sayıda aday parolanın aşlama hesaplamalarına bağlıdır. Bu
       nedenle, iyi bir parola aşlama yönteminin hesaplama maliyeti fazla olmalıdır - fakat tabii
       ki kullanışsız olmayacak kadar uzun değil.

       crypt, crypt_r, crypt_rn ve crypt_ra arayüzlerinde gerçeklenen tüm aş yöntemleri özellikle
       aday parolanın arama maliyetini artırmak için temel kriptografik ilkelin birden çok
       yinelemesini kullanır. Ne yazık ki, donanım iyileştirmelerinden ötürü, sabit maliyete
       sahip aşlama yöntemleri zamanla daha az güvenli hale geldi.

       Tuzlara ek olarak, yeni parola aşlama yöntemleri değişken yineleme sayısını kabul ediyor.
       Bu, uyumluluğu korurken maliyetleri donanım iyileştirmelerine uyarlamayı mümkün kılar.

       Aşağıdaki aşlama yöntemleri açıklanan arayüzlerle gerçeklenebilir.

   Geleneksel DES temelli
       Bu yöntem, crypt işlevinin neredeyse tüm gerçeklemelerinde desteklenir. Ne yazık ki,
       birçok sınırlaması nedeniyle artık yeterli güvenliği sunmuyor. Bu nedenle, parola
       aşlamalarını başka sistemlere taşımanız gerekmedikçe, yeni parolalar için
       kullanılmamalıdır.

           önek "" (boş dizge);
               ^[./0-9A-Za-z]{2} ile eşleşen dizge (bkz: regex(7))

           Kodlama sözdizimi
               [./0-9A-Za-z]{13}

           Azami parola uzunluğu
               8 (7 bitlik karakter kullanır)

           Etkili anahtar uzunluğu
               56 bite kadar

           Aşlama boyutu
               64 bit

           Tuz boyutu
               12 bit

           Yineleme sayısı
               25

   Genişletilmiş BSDI biçimi DES temelli
       Bu yöntem BSDI üzerinde kullanılır ve David Burren’in FreeSec kütüphanesinin kullanılması
       nedeniyle en azından NetBSD, OpenBSD ve FreeBSD üzerinde de mevcuttur.

           önek "_"

           Kodlama sözdizimi
               _[./0-9A-Za-z]{19}

           Azami parola uzunluğu
               sınırsız (7 bitlik karakter kullanır)

           Etkili anahtar uzunluğu
               56 bite kadar

           Aşlama boyutu
               64 bit

           Tuz boyutu
               24 bit

           Yineleme sayısı
               1 ila 2**24-1 (tek olmalıdır)

   FreeBSD biçimi MD5 temelli
       Aslen FreeBSD için geliştirilen Poul-Henning Kamp’ın MD5 temelli parola aşlama yöntemidir.
       Unix benzeri çoğu sistemde, Solaris 10 ve üstlerinde desteklenir, resmi glibc’nin bir
       parçasıdır. Ana götürüsü sabit yineleme sayısıdır, bu da mevcut donanım için zaten çok
       düşüktür.

           önek "$1$"

           Kodlama sözdizimi
               \$1\$[^$]{1,8}\$[./0-9A-Za-z]{22}

           Azami parola uzunluğu
               sınırsız (8-bit karakter kullanır)

           Etkili anahtar uzunluğu
               sadece aşlama boyutuyla sınırlıdır

           Aşlama boyutu
               128 bit

           Tuz boyutu
               6 ila 48 bit

           Yineleme sayısı
               1000

   OpenBSD biçimi Blowfish temelli (bcrypt)
       bcrypt, aslen Niels Provos ve David Mazieres tarafından OpenBSD için geliştirilmiştir ve
       FreeBSD ile NetBSD’nin yeni sürümlerini, Solaris 10 ve üstlerini, birçok GNU/*/Linux
       dağıtımında desteklenmektedir. Fakat resmi glibc’nin parçası değildir.

       Hem bcrypt hem de BSDI biçimi DES temelli aşlama yönteminde değişken yineleme sayısı
       sunulsa da, bcrypt daha da hızlı donanıma bile ölçeklenebilir, yalnızca parola kırmaya
       özgü bazı belirli iyileştirmelere izin vermez, etkin anahtar boyutu sınırlamasına sahip
       değildir ve parolalar için 8 bitlik karakter kullanır.

           önek "$2b$"

           Kodlama sözdizimi
               \$2[abxy]\$[0-9]{2}\$[./A-Za-z0-9]{53}

           Azami parola uzunluğu
               72 (8 bitlik karakter kullanır)

           Etkili anahtar boyutu
               sadece aşlama boyutuyla sınırlıdır

           Aşlama boyutu
               184 bit

           Tuz boyutu
               128 bit

           Yineleme sayısı
               2**4 ila 2**99 (şu anki gerçeklenimler için 2**31)

       bcrypt ile, crypt_gensalt, crypt_gensalt_rn ve crypt_gensalt_ra işlevlerine aktarılan
       count değişkeni, asıl yineleme sayısının 2 tabanlı logaritmasıdır.

       bcrypt aşlamaları, "$2a$" önekini 1997’den beri kullanıyordu. Ancak, 2011 senesinde
       crypt_blowfish paketinde (1.0.4’e kadar olan sürümler dahil) 8 bitlik parola
       karakterlerinin işlenmesini etkileyen bir gerçekleme hatası bulundu. Hatayı düzeltmenin
       yanı sıra, mevcut sistemlere yükseltme yöntemleri sağlamak için iki yeni önek tanıtıldı:
       hatayı tamamen yeniden tanıtan "$2x$", 7 ve 8 bitlik karakterlerin doğru işlenmesini
       güvenceleyen "$2y$". OpenBSD 5.5, crypt_blowfish’in "$2y$" önekiyle aynı etkiyi gösteren
       "$2b$" önekini tanıtmıştır ve mevcut crypt_blowfish’te bunu desteklemektedir. Ne yazık ki,
       "$2a$" önekinin 8 bitlik parola karakterleri üzerindeki etkisi sisteme özgü olarak kabul
       edilmelidir. Yeni parola aşlamaları üretilirken, "$2b$" ve "$2y$" önekleri
       kullanılmalıdır. (Bu tür aşlamaların, bu yeni önekleri desteklemeyen bir sisteme
       aktarılması gerekirse önceden oluşturulmuş aşlamaların aktarılan kopyalarındaki önek
       "$2a$" olarak değiştirilebilir.)

       crypt_gensalt, crypt_gensalt_rn ve crypt_gensalt_ra işlevleri, "$2x$" hariç (yeni
       aşlamalarda kullanılmamalıdır) "$2b$", "$2y$", ve "$2a$" öneklerini destekler. crypt,
       crypt_r, crypt_rn, crypt_ra işlevleri, bu dört öneki de destekler.

TAŞINABİLİRLİK

       Bir glibc 2.x sisteminde bu işlevlerden herhangi birini kullanan yazılımların, libcrypt
       ile ilintilenmesi gerekir. Bununla birlikte, birçok Unix benzeri işletim sistemi ve GNU C
       Kitaplığının eski sürümleri, libc’de crypt işlevini içermektedir. crypt ve crypt_r
       glibc-2.28’de kaldırılmıştır.

       crypt_r, crypt_rn, crypt_ra, crypt_gensalt, crypt_gensalt_rn ve crypt_gensalt_ra işlevleri
       çok taşınabilir değildir.

       Desteklenen aşlama yöntemleri gerçeklenime bağımlıdır.

ÖZNİTELİKLER

       Bu bölümde kullanılan terimlerin açıklamaları attributes(7) sayfasında bulunabilir.

       İşlev                Öznitelik      Değer
       crypt, crypt_gensalt Evre Güvenliği ÇEG-hayır yarış:crypt
       crypt_r, crypt_rn,   Evre Güvenliği ÇEG-evet
       crypt_ra,
       crypt_gensalt_rn,
       crypt_gensalt_ra

TARİHÇE

       Rotor temelli crypt işlevi Sürüm 6 AT&T UNIX’te göründü. "Geleneksel" DES temelli crypt
       ilk kez Sürüm 7 AT&T UNIX’te göründü.

       crypt işlevi SVID, X/OPEN uyumludur ve BSD 4.3 üzerinde kullanılmaktadır. crypt tarafından
       döndürülen dizgelerin uyumlu sistemler arasında taşınabilir olması gerekmez.

       crypt_r GNU C Kütüphanesinden kaynaklanır. HP-UX ve MKS Toolkit üzerinde de bir crypt_r
       içerir fakat tanım ve anlamsallığı farklıdır.

       crypt_gensalt Openwall eklentisidir. Solaris 10 ve üstü de bir crypt_gensalt içerir fakat
       tanım ve anlamsallığı farklıdır.

       crypt_rn, crypt_ra, crypt_gensalt_rn ve crypt_gensalt_ra işlevleri de Openwall
       eklentisidir.

HATA AYIKLAMA

       crypt ve crypt_gensalt işlevlerinin dönüş değerleri sonraki çağrılar tarafından üzerine
       yazılan sabit tamponları gösterir. (Solaris’in son sürümlerinde crypt evreye özgü verileri
       kullanır ve aslında evre güvenliklidir.)

       Hata durumunda crypt işlevinin diğer gerçeklemelerinden döndürülen dizgeler, salt okunur
       konumlarda tutulur veya yalnızca bir kez ilklendirilir, bu da normalde göstericisi crypt
       işlevinin dönüş değeri olan tamponu sıfırlarla doldurmaya çalışmayı her zaman emniyetsiz
       yapar, aksi takdirde güvenlik açısından tercih edilebilir. Uygulamanın çıktı tamponlarında
       tam denetime (ve çoğu zaman özel verilerin bir kısmı üzerinde de) sahip olduğu, crypt_r,
       crypt_rn veya crypt_ra işlevlerinin kullanılmasıyla bu sorundan kaçınılabilir. Ne yazık ki
       bu işlevler, crypt işlevinin istenmeyen bu özelliğine sahip sistemlerde mevcut değildir.

       Evre güvenlikli crypt_r kullanan uygulamalar, crypt_data yapısı için büyük alan (128
       KB’den fazla) ayırmaya ihtiyaç duyar. Her evre, bu yapının ayrı bir örneğine ihtiyaç
       duyar. crypt_r arayüzü, ikil uyumluğu bozmadan, büyük miktarda özel veri tutabilen bir
       aşlama algoritmasının gerçeklenmesini imkansız kılar. crypt_ra, kullanılan aşlama
       algoritması için gereken ayırma boyutunun dinamik olarak arttırılmasına izin verir. Ne
       yazık ki crypt_ra işlevi, crypt_r işlevine göre daha az taşınabilirdir.

       Çok evreli uygulamalar veya evre güvenlikli olması gereken kütüphane işlevleri
       crypt_gensalt yerine crypt_gensalt_rn veya crypt_gensalt_ra kullanmalıdır.

İLGİLİ BELGELER

       login(1), passwd(1), crypto(3), encrypt(3), free(3),getpass(3), getpwent(3), malloc(3),
       realloc(3), shadow(3), passwd(5), shadow(5), regex(7), pam(8)

ÇEVİREN

       © 2004 Emin İslam Tatlı
       © 2022 Fatih Koçer
       Bu çeviri özgür yazılımdır: Yasaların izin verdiği ölçüde HİÇBİR GARANTİ YOKTUR.
       Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri yapmak için
       https://github.com/TLBP/manpages-tr/issues adresinde "New Issue" düğmesine tıklayıp yeni
       bir konu açınız ve isteğinizi belirtiniz.