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

操作系统开发

开发平台:

C/C++

  1. .TH CRYPT 3
  2. .SH NAME
  3. crypt - one-way password encryption function
  4. .SH SYNOPSIS
  5. .ft B
  6. .nf
  7. #define _MINIX_SOURCE 1
  8. #include <unistd.h>
  9. char *crypt(const char *fIkeyfP, const char *fIsaltfP)
  10. .fi
  11. .ft P
  12. .SH DESCRIPTION
  13. The first use of
  14. .B crypt()
  15. is to encrypt a password.  Its second use is to authenticate a shadow
  16. password.  In both cases
  17. .B crypt()
  18. calls
  19. .BR pwdauth (8)
  20. to do the real work.
  21. .PP
  22. .B Crypt()
  23. encrypts a password if called with a user typed key, and a salt
  24. whose first two characters are in the set [./0-9A-Za-z].  The result is a
  25. character string in the [./0-9A-Za-z] alphabet of which the first two
  26. characters are equal to the salt, and the rest is the result of encrypting
  27. the key and the salt.
  28. .PP
  29. If
  30. .B crypt()
  31. is called with a salt that has the form
  32. .BI "##" user
  33. then the key is encrypted and compared to the encrypted password of
  34. .I user
  35. in the shadow password file.  If they are equal then
  36. .B crypt()
  37. returns the
  38. .BI "##" user
  39. argument, if not then some other string is returned.  This trick assures
  40. that the normal way to authenticate a password still works:
  41. .PP
  42. .RS
  43. .nf
  44. if (strcmp(pw->pw_passwd, crypt(key, pw->pw_passwd))) ...
  45. .fi
  46. .RE
  47. .PP
  48. If
  49. .I key
  50. is a null string, and the shadow password is a null string or the salt is a
  51. null string then the result equals
  52. .IR salt .
  53. (This is because the caller can't tell if a password field is empty in the
  54. shadow password file.)
  55. .PP
  56. The key and salt are limited to 1024 bytes total including the null bytes.
  57. .SH FILES
  58. .TP 25
  59. /usr/lib/pwdauth
  60. The password authentication program
  61. .SH "SEE ALSO"
  62. .BR getpass (3),
  63. .BR getpwent (3),
  64. .BR passwd (5),
  65. .BR pwdauth (8).
  66. .SH NOTES
  67. The result of an encryption is returned in a static array that is
  68. overwritten by each call.  The return value should not be modified.
  69. .SH AUTHOR
  70. Kees J. Bot (kjb@cs.vu.nl)