0
나는 한 시간 동안 검색을 해왔다.PHP MySQL 바이너리 선택
나는 이라는 테이블과 2 열 username varchar(64)
및 password binary(20)
을 가지고 있습니다. 나는 SHA1 암호화를 사용하고 있습니다. 왜냐하면 이것을 빠르고 더러워지기 위해서입니다.
mysql> describe user;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(64) | NO | PRI | NULL | |
| password | binary(20) | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+
사용자의 암호를 인증하려면 몇 가지 문제가 있습니다. 바이너리로 결과 비밀번호를 얻지 못하고 있습니다. 어떤 제안? 감사.
$username = mysql_real_escape_string($_POST['username']);
$password = sha1(mysql_real_escape_string($_POST['password']));
$binPass = pack("H*", $password);
$query = "SELECT * FROM `user` WHERE `username` = '$username' AND `password` = $binPass;";
16 진수 문자열 대신 이진 blob로 저장하는 이유는 무엇입니까? 당신은 이미 그것을 가지고 있으며 그것을 사용할 수도 있습니다. 또한 배 트리에서 bcrypt/pbkdf2/scrypt/partridges를 무조건 SHA1보다 더 나은 옵션으로 지정해야합니다. – Charles
나는이 [answer] (http://stackoverflow.com/a/247627/1762224)에서 비밀번호 저장을 기반으로합니다. –