加密口令是經(jīng)單向加密算法處理過的用戶口令副本。因?yàn)榇怂惴ㄊ菃蜗虻模圆荒軓募用芸诹畈聹y(cè)到原來的口令。
歷史上使用的算法總是從64字符集中產(chǎn)生13個(gè)可打印字符。某些較新的系統(tǒng)使用md5算法對(duì)口令加密,為每個(gè)加密口令產(chǎn)生31個(gè)字符。
給出一個(gè)加密口令,找不到一種算法可以將其逆轉(zhuǎn)到普通文本口令(普通文本口令是在PassWord:提示符后鍵入的口令)。但是可以對(duì)口令進(jìn)行猜測(cè),將猜測(cè)的口令經(jīng)單向算法變換成加密形式,然后將其與用戶的加密口令相比較。
為使企圖這樣做的人難以獲得原始資料(加密口令),現(xiàn)在,某些系統(tǒng)將加密口令存放在另一個(gè)通常稱為陰影口令(shadow password)的文件中。該文件至少要包含用戶名和加密口令。與該口令相關(guān)的其他信息也可存放在該文件中(表6-2)。
只有用戶登錄名和加密口令這兩個(gè)字段是必需的。其他字段用于控制口令的改動(dòng)頻率(稱為口令的衰老)以及賬戶保持活動(dòng)狀態(tài)的時(shí)間。
陰影口令文件不應(yīng)是一般用戶可以讀取的。僅有少數(shù)幾個(gè)程序需要存取加密口令,例如login(1)和passwd(1),這些程序常常是設(shè)置用戶ID為root的程序。有了陰影口令后,普通口令文件/etc/passwd可由各用戶自由讀取。
在linux 2.4.22和Solaris 9中,與訪問口令文件的一組函數(shù)類似,有另一組函數(shù)可用于訪問陰影口令文件。
#include <shadow.h>struct spwd *getspnam( const char *name );struct spwd *getspent( void );兩個(gè)函數(shù)返回值:若成功則返回指針,若出錯(cuò)則返回NULLvoid setspent( void );void endspent( void );
在FreeBSD 5.2.1和MAC OS X 10.3中,沒有陰影口令結(jié)構(gòu)。附加的賬戶信息放在口令文件中。
本篇博文內(nèi)容摘自《UNIX環(huán)境高級(jí)編程》(第二版),僅作個(gè)人學(xué)習(xí)記錄所用。關(guān)于本書的更多內(nèi)容可參考:http://www.apuebook.com/。
新聞熱點(diǎn)
疑難解答
圖片精選