ログインシステムを作っておりますが、DBに入れるパスワードを暗号化するやり方がわかりません。

参考サイトはご存知ありませんか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/07/09 14:40:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:onigirin No.1

回答回数327ベストアンサー獲得回数23

ポイント23pt

言語がわかりませんが、phpの例です。

http://metalmickey.genin.jp/study/php_bbs_2_13.html

id:makocan

すみません。

PHPです。

2007/07/03 17:36:10
id:F-15X No.2

回答回数111ベストアンサー獲得回数13

ポイント23pt

MySQLですとこちらが参考になるかと思います。


MySQLでカラムの暗号化/復元

http://www.ironhearts.com/diary/archives/001255.html

MySQL 4.1 リファレンスマニュアル :4.4.8. パスワードの設定

http://dev.mysql.com/doc/refman/4.1/ja/passwords.html

id:Yota No.3

回答回数453ベストアンサー獲得回数28

ポイント22pt

ただ暗号化しても暗号化したパスワードを盗聴されたら意味ないので、ハッシュとチャレンジ・レスポンス方式の組み合わせた方がいいと思います。

http://phpspot.org/blog/archives/2006/02/ajaxphp_1.html

id:manupica No.4

回答回数4ベストアンサー獲得回数0

ポイント22pt

http://www.google.co.jp/ <=ダミーです

DBに入れるパスワードは事前にphp側で暗号化しておくのがよいでしょう。

暗号化には、md5という方式が一般的です。

phpであればmd5()という関数を使います。

$crypted_password = md5($password);

として暗号化したパスワードをDBに保存します。

※$passwordの部分には、パスワードを入れるので、例えばHTMLで

<input type="password" name="pass">

としてきた場合は、

$password = $_POST["pass"]

として取得します。

$crypted_password は既に暗号化されているので、これをDBに入れた時点で

DBを見ても、その人のパスワードは、管理者からも見ることが出来ません。

テーブルの構造が

id int primary key,

username char(255),

password char(255),

だとしましょう。

この時は以下のようにしてデータを入力します。

$sql = "insert into user_data ('user','password') values (".$username.",".$password")";

mysql_query($sql);

$usernameもHTML側で

<input type="text" name="user">

として、php側で

$username = $_POST["user"];

とします。

<h3>o- 事前に用意するテーブル ( DB名を sample_dbとします)</h3>

create table user_data

(

id int primary key,

username char(255),

password char(255),

);

<h3>o- HTML側の処理</h3>

<form action="login.php">

<input type="text" name="user">

<input type="password" name="pass">

</form>

<h3>o- PHP側の処理(login.php)</h3>

$username = $_POST["user"];

$password = $_POST["pass"];

$cn = mysql_connect("localhost", "root", "");//root,passwordなしでDB接続

mysql_select_db("sample_db");

$sql = "insert into user_data ('user','password') values (".$username.",".$password")";

mysql_query($sql);

?>

こんなかんじです。

※ セキュリティは甘々です。きちんとやるならYotaさんの回答等を参考にしたほうがいいと思います。

※ 関係ないですが、php/mysqlであればこちらのサイトが参考になります。

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_s01.htm

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません