No.15190![]() |
Apacheのhtpasswdで作成したパスワードを認識したい 投稿者---mummi(2004/07/04 10:52:40) |
||
Apacheのhtpasswdで作成されたパスワードに対して CのCGIでパスワードのファイルを読み込み、パスワードが正しいかどうかを認証させたいですが、どうですればいいでしょうか。 OSがLinuxです。 どうぞよろしくお願いします。 |
No.15197![]() |
Re:Apacheのhtpasswdで作成したパスワードを認識したい 投稿者---ぽこ(2004/07/04 17:28:44) |
||
>Apacheのhtpasswdで作成されたパスワードに対して >CのCGIでパスワードのファイルを読み込み、パスワードが正しいかどうかを認証させたいですが、どうですればいいでしょうか。 ユーザが入力したパスワードに対してhtpasswdをかけ、 実際のパスワードと比較するのでは駄目でしょうか? |
No.15213![]() |
Re:Apacheのhtpasswdで作成したパスワードを認識したい 投稿者---mummi(2004/07/05 03:34:54) |
||
>>Apacheのhtpasswdで作成されたパスワードに対して >>CのCGIでパスワードのファイルを読み込み、パスワードが正しいかどうかを認証させたいですが、どうですればいいでしょうか。 > >ユーザが入力したパスワードに対してhtpasswdをかけ、 >実際のパスワードと比較するのでは駄目でしょうか? htpasswdのパラメータなどを確認しましたが、そのようなオプションはないようです。 htpasswdのパスワードの暗号化コードがMD5 algorithmを利用しているみたいです。 もう少しインターネットの情報を収集してみます。 |
No.15222![]() |
Re:Apacheのhtpasswdで作成したパスワードを認識したい 投稿者---ぽこ(2004/07/05 08:57:05) |
||
>htpasswdのパラメータなどを確認しましたが、そのようなオプションはないようです。 > htpasswd -nb 'username' 'passwd' で標準出力にusername:crypt(passwd)の形式で出力されるようですが。。 |
No.15227![]() |
Re:Apacheのhtpasswdで作成したパスワードを認識したい 投稿者---mummi(2004/07/05 10:53:53) |
||
>>htpasswdのパラメータなどを確認しましたが、そのようなオプションはないようです。 >> > >htpasswd -nb 'username' 'passwd' >で標準出力にusername:crypt(passwd)の形式で出力されるようですが。。 なるほど、下記のスクリプトで入力されたパスワードの比較でできるようになりますね。 ありがとうございました!!!! 解決しました!!!! #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <time.h> int main(int argc, char** argv) { char *password,cmd[256]; char *result,*ptr; char id,filename[80],str[512]; FILE * fp; sprintf(cmd,"/var/lib/httpd/bin/htpasswd -bn saya saya"); if((fp=popen(cmd,"r"))==NULL){ fprintf(stdout,"error!!!\n"); exit(-1); } while(1){ fgets(str,512,fp); if(feof(fp)){ break; } ptr=strchr(str,'\n'); if(ptr!=NULL){ *ptr='\0'; } printf("%s\n",str); } pclose(fp); } |