⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crypt.3

📁 早期freebsd实现
💻 3
字号:
.\" Copyright (c) 1989, 1991, 1993.\"	The Regents of the University of California.  All rights reserved..\".\" Redistribution and use in source and binary forms, with or without.\" modification, are permitted provided that the following conditions.\" are met:.\" 1. Redistributions of source code must retain the above copyright.\"    notice, this list of conditions and the following disclaimer..\" 2. Redistributions in binary form must reproduce the above copyright.\"    notice, this list of conditions and the following disclaimer in the.\"    documentation and/or other materials provided with the distribution..\" 3. All advertising materials mentioning features or use of this software.\"    must display the following acknowledgement:.\"	This product includes software developed by the University of.\"	California, Berkeley and its contributors..\" 4. Neither the name of the University nor the names of its contributors.\"    may be used to endorse or promote products derived from this software.\"    without specific prior written permission..\".\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION).\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF.\" SUCH DAMAGE..\".\"     @(#)crypt.3	8.2 (Berkeley) 12/11/93.\".Dd December 11, 1993.Dt CRYPT 3.Os.Sh NAME.Nm crypt ,.Nm setkey ,.Nm encrypt ,.Nm des_setkey ,.Nm des_cipher.Nd DES encryption.Sh SYNOPSIS.Ft char.Fn *crypt "const char *key" "const char *setting".Ft int.Fn setkey "char *key".Ft int.Fn encrypt "char *block" "int flag".Ft int.Fn des_setkey "const char *key".Ft int.Fn des_cipher "const char *in" "char *out" "long salt" "int count".Sh DESCRIPTIONThe.Xr cryptfunctionperforms password encryption.It is derived from the.Tn NBSData Encryption Standard.Additional code has been added to deterkey search attempts.The first argument to.Nm cryptisa.Dv NUL Ns -terminatedstring (normally a password typed by a user).The second is a character array, 9 bytes in length, consisting of anunderscore (``_'') followed by 4 bytes of iteration count and 4 bytesof salt.Both the iteration.Fa countand the .Fa saltare encoded with 6 bits per character, least significant bits first.The values 0 to 63 are encoded by the characters ``./0-9A-Za-z'',respectively..PpThe.Fa saltis used to induce disorder in to the.Tn DESalgorithmin one of 16777216possible ways(specifically, if bit.Em iof the.Ar saltis set then bits.Em iand.Em i+24are swapped in the.Tn DES``E'' box output).The.Ar keyis divided into groups of 8 characters (a short final group is null-padded)and the low-order 7 bits of each character (56 bits per group) areused to form the DES key as follows: the first group of 56 bits becomes theinitial DES key.For each additional group, the XOR of the group bits and the encryption ofthe DES key with itself becomes the next DES key.Then the final DES key is used to perform.Ar countcumulative encryptions of a 64-bit constant.The value returned is a.Dv NUL Ns -terminatedstring, 20 bytes in length, consistingof the.Ar settingfollowed by the encoded 64-bit encryption..PpFor compatibility with historical versions of.Xr crypt 3 ,the.Ar settingmay consist of 2 bytes of salt, encoded as above, in which case aniteration.Ar countof 25 is used, fewer perturbations of.Tn DESare available, at most 8characters of.Ar keyare used, and the returned value is a.Dv NUL Ns -terminatedstring 13 bytes in length..PpThefunctions,.Fn encrypt ,.Fn setkey ,.Fn des_setkeyand.Fn des_cipherallow limited access to the.Tn DESalgorithm itself.The.Ar keyargument to.Fn setkeyis a 64 character array ofbinary values (numeric 0 or 1).A 56-bit key is derived from this array by dividing the arrayinto groups of 8 and ignoring the last bit in each group..PpThe.Fn encryptargument.Fa blockis also a 64 character array ofbinary values.If the value of.Fa flagis 0,the argument.Fa blockis encrypted, otherwise itis decrypted.The encryption or decryption is returned in the originalarray.Fa blockafter using thekey specifiedby.Fn setkeyto process it..PpThe.Fn des_setkeyand.Fn des_cipherfunctions are faster but less portable than.Fn setkeyand.Fn encrypt .The argument to.Fn des_setkeyis a character array of length 8.The.Em leastsignificant bit in each character is ignored and the next 7 bits of eachcharacter are concatenated to yield a 56-bit key.The function.Fn des_cipherencrypts (or decrypts if.Fa countis negative) the 64-bits stored in the 8 characters at.Fa inusing.Xr abs 3of.Fa countiterations of.Tn DESand stores the 64-bit result in the 8 characters at.Fa out .The.Fa saltspecifies perturbations to.Tn DESas described above..PpThe function.Fn cryptreturns a pointer to the encrypted value on success and NULL on failure.The functions.Fn setkey ,.Fn encrypt ,.Fn des_setkey ,and.Fn des_cipherreturn 0 on success and 1 on failure.Historically, the functions.Fn setkeyand.Fn encryptdid not return any value.They have been provided return values primarily to distinguishimplementations where hardware support is provided but notavailable or where the DES encryption is not available due to theusual political silliness..Sh SEE ALSO.Xr login 1 ,.Xr passwd 1 ,.Xr getpass 3 ,.Xr passwd 5.sp.Rs.%T "Mathematical Cryptology for Computer Scientists and Mathematicians".%A Wayne Patterson.%D 1987.%N ISBN 0-8476-7438-X.Re.Rs.%T "Password Security: A Case History".%A R. Morris.%A Ken Thompson.%J "Communications of the ACM".%V vol. 22.%P pp. 594-597.%D Nov. 1979.Re.Rs.%T "DES will be Totally Insecure within Ten Years".%A M.E. Hellman.%J "IEEE Spectrum".%V vol. 16.%P pp. 32-39.%D July 1979.Re.Sh HISTORYA rotor-based.Fn cryptfunction appeared in.At v6 .The current style.Fn cryptfirst appeared in.At v7 ..Sh BUGSDropping the.Em leastsignificant bit in each character of the argument to.Fn des_setkeyis ridiculous..PpThe.Fn cryptfunction leaves its result in an internal static object and returnsa pointer to that object.Subsequent calls to.Fn cryptwill modify the same object.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -