Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 데이터베이스에 사용자 이름과 비밀번호를 안전하게 저장하는 방법은 무엇입니까?


사용자 이름과 비밀번호를 MySQL 데이터베이스에 안전하게 저장하기 위해 MD5()를 사용할 수 있습니다.

예를 들어 보겠습니다. 먼저 테이블을 생성하겠습니다. CREATE 명령은 테이블을 생성하는 데 사용됩니다.

mysql> create table UserNameAndPasswordDemo
- > (
- > U_Id int(10) unsigned NOT NULL AUTO_INCREMENT,
- > UserId varchar(255) DEFAULT NULL,
- > UserPassword varchar(255) DEFAULT NULL,
- > primary key(U_Id),
- > UNIQUE KEY `UserId` (`UserId`)
- > );
Query OK, 0 rows affected (0.61 sec)

MD5()를 사용하여 기록을 삽입하고 암호를 안전하게 저장합니다.

mysql> INSERT INTO UserNameAndPasswordDemo(UserId, UserPassword) VALUES ('John@gg.com', MD5('john123'));
Query OK, 1 row affected (0.17 sec)

mysql> INSERT INTO UserNameAndPasswordDemo(UserId, UserPassword) VALUES (MD5('Carol@gg.com'), MD5('123Carol'));
Query OK, 1 row affected (0.14 sec)

이제 MD5의 암호를 포함하여 레코드를 표시하는 SELECT 문을 구현합니다. 여기서는 UserId 'John@gg.com'에 대한 레코드만 표시합니다.

mysql> SELECT *from UserNameAndPasswordDemo where UserId='John@gg.com';

다음은 출력입니다.

+------+-------------+----------------------------------+
| U_Id | UserId      | UserPassword                     |
+------+-------------+----------------------------------+
| 1    | John@gg.com | 6e0b7076126a29d5dfcbd54835387b7b |
+------+-------------+----------------------------------+
1 row in set (0.00 sec)

모든 기록을 표시합니다.

mysql> SELECT *from UserNameAndPasswordDemo;

다음은 MD5 −

를 사용하여 사용자 이름과 비밀번호를 저장한 출력입니다.
+------+----------------------------------+----------------------------------+
| U_Id | UserId                           | UserPassword                     |
+------+----------------------------------+----------------------------------+
| 1    | John@gg.com                      | 6e0b7076126a29d5dfcbd54835387b7b |
| 2    | 5f565a3d794f85e5db4f3bb7b5811a25 | f1d2fb85f7d6ce7428b9b3fd569be42b |
+------+----------------------------------+----------------------------------+
2 rows in set (0.00 sec)