crypt(3)

İSİM
crypt - parola ve veri şifrelemesi

KULLANIM
#define _XOPEN_SOURCE
#include <unistd.h>

void crypt (const char *parola, const char *tuz);
-lcrypt ile ilintileme gerektirir.

AÇIKLAMA
crypt parola şifreleme işlevidir. Veri Şifreleme Standartı (Data Encryption Standard) algoritmasına dayanır, fakat anahtar tarama için tasarlanmış donanımlara engel olmak için bir takım farklılıklar içerir.

parola kullanıcın girdiği paroladır.

tuz ise, elemanları [a-zA-Z0-9./] kümesinden seçilen iki karakterli bir dizgedir. Bu dizge algoritmayı 4096 farklı ihtimalden biri ile karıştırmayı amaçlar.

parolanın ilk sekiz karakterinden her birinin en düşük anlamlı 7 biti alınarak 56 bitlik parola oluşturulur. Bu 56 bitlik parola tekrar tekrar bir dizgeyi (genellikle hepsi sıfırlardan oluşan bir dizge) şifrelemede kullanılır. Dönüş değeri 13 karakterli bir ASCII dizgesi olan ve ilk iki karakteri tuzu temsil eden şifrelenmiş paroladır. Dönüş değeri, her işlev çağrısında içeriği değişen statik bir veridir.

Uyarı:
    Anahtar aralığı 2^56 (7.2e16) farklı değer içermektedir. Bu anahtar aralığının tümünü kapsayan taramalar paralel bilgisayarlar ile mümkündür. crack(1) gibi yazılımlar bu anahtar aralığının bir kısmını tarayıp parolaları elde etmek için insanlar tarafından kullanılmaktadır. Bu sebeple, parola seçerken sık kullanılan kelime ve isimlerden sakınılmalıdır. Parola seçme işlemi esnasında kırılabilir parolaları kontrol eden passwd(1) uygulaması kullanmalıdır.

DES algoritması, crypt arayüzünün parola kimlik denetimi haricinde kullanılmasını kötü bir seçenek haline getirmiştir.Eğer crypt arayüzünü kriptografi projenizde kullanmayı planlıyorsanız, bundan vazgeçin: Şifreleme ve DES kütüphaneleri konusunda iyi bir kitap elde edinin.

DÖNÜŞ DEĞERİ
Dönüş değeri şifrelenmiş parolaya bir göstericidir. Hata durumunda, boş gösterici döner.

HATALAR
ENOSYS
    İşlev kütüphanede bulunmamaktadır (Örneğin, ABD'nin ihracat sınırlamalarından dolayı).

GNU OLUŞUMU
Bu işlevin glibc2 sürümü şu ek özelliklere sahiptir. Eğer tuz karakter dizisi, "$1$" karakterleri ile başlar ve bunun ardından en fazla 8 karakter gelirse (ve tercihan "$" karakteri ile sonlandırılırsa), bu durumda glib crypt işlevi DES motoru yerine, MD5 algoritması kullanılır ve 34 bayta kadar çıktı verilir. Çıktı "$1$<dizge>$" biçimindedir. Burada dizge, 8 karaktere kadar tuz ve bunu takip eden [a-zA-Z0-9./] kümesinden seçilmiş 22 bayttan oluşur. Burada bu anahtarın bütünü anlamlıdır (sadece ilk 8 baytı değil).

Bu işlevin kullanıldığı yazılımlar derlenirken -lcrypt ile ilintilemelidir.

UYUMLULUK
crypt() işlevi SVID, X/OPEN, BSD 4.3 ve POSIX 1003.1-2001 uyumludur.

İLGİLİ BELGELER
login(1), crypt(1), passwd(1), encrypt(3), getpass(3), passwd(5).

ÇEVİREN
Emin İslam Tatlı <eminislam (at) web.de>, Nisan 2004