CRYPT.3
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:2k
源码类别:

操作系统开发

开发平台:

C/C++

  1. CRYPT(3)                  Minix Programmer's Manual                   CRYPT(3)
  2. NAME
  3.      crypt - one-way password encryption function
  4. SYNOPSIS
  5.      #define _MINIX_SOURCE 1
  6.      #include <unistd.h>
  7.      char *crypt(const char *key, const char *salt)
  8. DESCRIPTION
  9.      The first use of crypt() is to encrypt a password.  Its second use is  to
  10.      authenticate  a  shadow password.  In both cases crypt() calls pwdauth(8)
  11.      to do the real work.
  12.      Crypt() encrypts a password if called with a user typed key, and  a  salt
  13.      whose first two characters are in the set [./0-9A-Za-z].  The result is a
  14.      character string in the [./0-9A-Za-z] alphabet of  which  the  first  two
  15.      characters  are  equal  to  the  salt,  and  the  rest  is  the result of
  16.      encrypting the key and the salt.
  17.      If crypt() is called with a salt that has the form ##user then the key is
  18.      encrypted  and  compared  to the encrypted password of user in the shadow
  19.      password file.  If  they  are  equal  then  crypt()  returns  the  ##user
  20.      argument,  if not then some other string is returned.  This trick assures
  21.      that the normal way to authenticate a password still works:
  22.           if (strcmp(pw->pw_passwd, crypt(key, pw->pw_passwd))) ...
  23.      If key is a null string, and the shadow password is a null string or  the
  24.      salt  is a null string then the result equals salt.  (This is because the
  25.      caller can't tell if a password field is empty  in  the  shadow  password
  26.      file.)
  27.      The key and salt are limited to  1024  bytes  total  including  the  null
  28.      bytes.
  29. FILES
  30.      /usr/lib/pwdauth         The password authentication program
  31. SEE ALSO
  32.      getpass(3), getpwent(3), passwd(5), pwdauth(8).
  33. NOTES
  34.      The result of an encryption  is  returned  in  a  static  array  that  is
  35.      overwritten by each call.  The return value should not be modified.
  36.                                                                              1
  37. CRYPT(3)                  Minix Programmer's Manual                   CRYPT(3)
  38. AUTHOR
  39.      Kees J. Bot (kjb@cs.vu.nl)
  40.                                                                              2