Die Standardbibliothek bietete Funktionen zur Erzeugung von Pseudo-Zufallszahlen und Streuwertfunktionen für Passwörter. Für starke kryptographie sollte man eine echte kryptographische Bibliothek wie zum Beispiel OpenSSL verwenden.
stdlib.h
Pseudo-Zufallszahlen erzeugen.
int | rand | (void) | Ganzzahl |
int | rand_r | (unsigned int * seedp) | Obsolet |
void | srand | (unsigned int seed) | Initialisierung |
void | srandom | (unsigned int seed) | |
long | random | (void) | Ganzzahl |
char * | initstate | (unsigned int seed, char * state, size_t n) | |
char * | setstate | ( char * state) | |
void | srand48 | (long int seedval) | |
unsigned short * | seed48 | (unsigned short seed16v[3]) | |
void | lcong48 | (unsigned short param[7]) | |
double | drand48 | (void) | Gleitpunktzahl |
double | erand48 | (unsigned short xsubi[3]) | Gleitpunktzahl |
long | lrand48 | (void) | Nächste Positive |
long | nrand48 | (unsigned short xsubi[3]) | Positive Zahl |
long | mrand48 | (void) | Vorzeichenbehaftet |
long | jrand48 | (unsigned short xsubi[3]) | Vorzeichenbehaftet |
void | setkey | (const char * key) | Schlüssel für encrypt |
crypt.h
Ablaufinvariante Alternativen
struct crypt_data | |||
---|---|---|---|
char | keysched[16 * 8] | ||
char | sb0[32768] | ||
char | sb1[32768] | ||
char | sb2[32768] | ||
char | sb3[32768] | ||
char | crypt_3_buf[14] | ||
char | current_salt[2] | ||
long | current_saltbits | ||
int | direction | ||
int | initialized | ||
void | setkey_r | (const char * key, struct crypt_data * data) | |
void | encrypt_r | (char * block, int edflag, struct crypt_data * data) |
0 | Verschlüsselung |
1 | Entschlüsselung |
unistd.h
Die POSIX-Funktionen
implementieren den mittlerweile unsicheren
DES-Algorithmus.
Da dieser ehemals exportbeschränkten unterlag, wurden die Funktionen
in die Bilbiothek libcrypt
ausgelagert und muss diese mit
-lcrypt
einbinden.
$Id$Salt$Encrypted
void | encrypt | (char block[64], int edflag) | Daten mit setkey verschlüsseln |
char * | crypt | (const char * key, const char * salt | Streuwert über Passwort bilden |
char * | crypt_r | (const char * key, const char * salt, struct crypt_data * data) |
[a-zA-Z0-9./]
für DES in 4096 Variationen
id | salt | encrypted | Algorithmus |
1 | 16 | 22 | MD5 |
2a | 16 | ? | Blowfish |
5 | 16 | 43 | SHA-256 |
6 | 16 | 86 | SHA-512 |