|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
不同版本的Linux命令数量不一样,这里笔者把它们中比较重要的和使用频率最多的命令。
利用openssl中的MD5函数,该函数前往16字节的unsignedchar范例的数据,每一个字节的局限都在0~255间,把
它格局化为十六进制就是32位md5编码。注:一个字节为8位,恰好能够暗示2位的十六进制。
利用登录客户真个用户名从Redis数据库中失掉salt值和加密后的暗码,然后把登录客户真个暗码经由salt加密后,与
Redis数据库中的暗码举行对照。不异则考证经由过程,不然考证失利。
Redis数据库中暗码的存储格局为password:salt
用户考证算法以下:
intuser_authenticate(char*username,char*password)
{
char*salt_pw,*salt,*pw;
charbuf[40];
chartmp[3]={ },md5_str[33]={ };
unsignedcharmd[16];
inti;
//get_salt_pw挪用Redis数据库取得password:salt
salt_pw=get_salt_pw(db,username);
pw=strtok(salt_pw,":");
if(!pw){
return0;
}
salt=strtok(NULL,":");
if(!salt){
return0;
}
strcpy(buf,password);
strcat(buf,salt);
MD5((constunsignedchar*)buf,strlen(buf),md);
//transformtomd5string
for(i=0;i<16;i++){
sprintf(tmp,"%02x",md);
strcat(md5_str,tmp);
}
//compareencodepasswordusingmd5
if(strcmp((char*)md5_str,pw)){
return0;
}
return1;
}
个中要注重strtok函数的利用,和16字节的unsignedchar转换为32位十六进制数的历程。
无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。 |
|