---
name: "cracklib"
section: "3"
platform: "linux"
package: "libcrack2-dev"
version: "2.9.6-5.2+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/FascistCheck"
---

# cracklib(3)

a pro-active password checker library

Part of [FascistCheck(3)](/FascistCheck/3.md).

## NAME

FascistCheck - a pro-active password checker library

## SYNOPSIS

**#include \<crack.h\>**

**static char const CRACKLIB\_DICTPATH\[\] =  ...;**

**extern char const \***\
 **FascistCheck(char const passwd\[\], char const dictpath\[\]);**

## DESCRIPTION

cracklib is a library containing the **FascistCheck** C function which may be used in a "passwd" like program.  The idea is simple: try to prevent users from choosing passwords that could be guessed by "crack" by filtering them out, at source.  cracklib is an offshoot of the the version 5 of the "crack" software and contains a considerable number of ideas nicked from the new software.

The first formal argument **password** is the potential password.  The second formal argument **dictpath** is the full path name + filename prefix of the cracklib dictionary database. **FascistCheck** returns the NULL pointer for a good password, or a pointer to a diagnostic string if it is a weak password.

The database is in a binary format generated by the utilities [**crack\_mkdict**(8)](/crack_mkdict/8.md) and [**crack\_packer**(8)](/crack_packer/8.md). On a Debian system the database is located in the directory defined by  the static constant **CRACKLIB\_DICTPATH** and is set to /var/cache/cracklib/cracklib\_dict.  None of the subroutines in the cracklib libraries have this location hard-coded into their implementations.  It is generated daily with the program /etc/cron.daily/cracklib.

## FILES

- */var/cache/cracklib/cracklib\_dict.\[hwm\|pwd\|pwi\]*

  cracklib dictionary database files used by utilities.

- */etc/cron.daily/cracklib*

  cracklib daily cron program to rebuild the cracklib dictionary database.

- */etc/cracklib/cracklib.conf*

  cracklib configuration file used by the cracklib daily cron program to rebuild the cracklib dictionary database.

- */usr/sbin/crack\_mkdict*

  cracklib shell script to create initial list of words for dictionary database.

- */usr/share/doc/cracklib2-dev/examples*

  Example [**cc**(1)](/cc/1.md) source files that show how **FascistCheck** is used.

## SEE ALSO

[**crack\_teststr**(8)](/crack_teststr/8.md), [**crack\_mkdict**(8)](/crack_mkdict/8.md), [**update-cracklib**(8)](/update-cracklib/8.md)\
 /usr/share/doc/cracklib2-dev/examples\
 /usr/share/doc/cracklib2/cracklib2.html\
 /usr/share/doc/cracklib2-dev/cracklib2-dev.html

## AUTHOR

**cracklib2** is written by Alec Muffett \<alecm@crypto.dircon.co.uk\>. Manual added by Jean Pierre LeJacq \<jplejacq@quoininc.com\>.
