Hướng dẫn how to store password in database mysql - cách lưu trữ mật khẩu trong cơ sở dữ liệu mysql


Để lưu trữ tên người dùng và mật khẩu một cách an toàn trong cơ sở dữ liệu MySQL, chúng ta có thể sử dụng md5 ().

Hãy cho chúng tôi xem một ví dụ. Đầu tiên, chúng tôi sẽ tạo một bảng. Lệnh tạo được sử dụng để tạo một bảng.

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)

Chèn hồ sơ và lưu trữ mật khẩu một cách an toàn với sự trợ giúp của md5 ().

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

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

Bây giờ, chúng tôi sẽ triển khai câu lệnh CHỌN để hiển thị các bản ghi, bao gồm cả mật khẩu trong MD5. Ở đây, chúng tôi chỉ hiển thị các bản ghi cho userid ''.

mysql> SELECT *from UserNameAndPasswordDemo where UserId='';

Sau đây là đầu ra.

+------+-------------+----------------------------------+
| U_Id | UserId      | UserPassword                     |
+------+-------------+----------------------------------+
| 1    |  | 6e0b7076126a29d5dfcbd54835387b7b |
+------+-------------+----------------------------------+
1 row in set (0.00 sec)

Để hiển thị tất cả các bản ghi.

mysql> SELECT *from UserNameAndPasswordDemo;

Sau đây là đầu ra trong đó chúng tôi đã lưu tên người dùng và mật khẩu bằng MD5 -

+------+----------------------------------+----------------------------------+
| U_Id | UserId                           | UserPassword                     |
+------+----------------------------------+----------------------------------+
| 1    |                       | 6e0b7076126a29d5dfcbd54835387b7b |
| 2    | 5f565a3d794f85e5db4f3bb7b5811a25 | f1d2fb85f7d6ce7428b9b3fd569be42b |
+------+----------------------------------+----------------------------------+
2 rows in set (0.00 sec)

Hướng dẫn how to store password in database mysql - cách lưu trữ mật khẩu trong cơ sở dữ liệu mysql

Cập nhật vào ngày 26 tháng 6 năm 2020 12:50:08

  • Câu hỏi và câu trả lời liên quan
  • Làm thế nào để lưu trữ và truy xuất một ngày vào cơ sở dữ liệu MySQL bằng Python?
  • MySQL lưu trữ các tệp cơ sở dữ liệu ở đâu?
  • Làm thế nào để lưu trữ số lượng thập phân PayPal trong cơ sở dữ liệu MySQL?
  • Làm thế nào để lưu trữ và truy xuất ngày vào cơ sở dữ liệu SQLite3 bằng Python?
  • Cách dễ nhất để lưu trữ ngày trong cơ sở dữ liệu MySQL là gì?
  • Làm thế nào để lưu trữ đầu ra truy vấn trong cơ sở dữ liệu TEMP MongoDB?
  • Làm thế nào để lưu trữ thập phân trong mysql?
  • Làm thế nào để chúng tôi chèn/lưu trữ một tệp vào cơ sở dữ liệu MySQL bằng JDBC?
  • Làm thế nào để mở/đóng các tệp một cách an toàn trong Python?
  • Cách tạo mật khẩu ngẫu nhiên trong Linux trong Linux
  • Phân biệt giữa bảng lưu trữ hàng và cột trong cơ sở dữ liệu SAP HANA
  • Kiểu dữ liệu mysql chỉ lưu trữ tháng và năm?
  • Viết một truy vấn để lưu trữ và truy xuất thông tin sổ sách trong cơ sở dữ liệu (DBMS)?
  • Làm thế nào để lưu trữ dữ liệu trong MySQL dưới dạng JSON?
  • Làm thế nào để dừng một vòng lặp vô hạn một cách an toàn trong Python?

Trước hết, MD5 và SHA1 đã được chứng minh là dễ bị các cuộc tấn công va chạm và có thể được lập cầu vồng dễ dàng (khi họ thấy bạn băm có giống nhau trong cơ sở dữ liệu của họ về mật khẩu thông thường).

Hiện tại có hai thứ đủ an toàn cho mật khẩu mà bạn có thể sử dụng.

Đầu tiên là SHA512. SHA512 là phiên bản phụ của SHA2. SHA2 vẫn chưa được chứng minh là dễ bị tấn công va chạm và SHA512 sẽ tạo ra hàm băm 512 bit. Dưới đây là một ví dụ về cách sử dụng SHA512:

Tùy chọn khác được gọi là bcrypt. BCRYPT nổi tiếng với băm an toàn. Nó có lẽ là một trong những an toàn nhất ngoài kia và một tùy chỉnh nhất cũng có thể tùy chỉnh.

Trước khi bạn muốn bắt đầu sử dụng bcrypt, bạn cần kiểm tra xem sever của bạn có bật không, hãy nhập mã này:

Nếu nó trả về rằng nó được bật thì bước tiếp theo rất dễ dàng, tất cả những gì bạn cần làm để bcrypt một mật khẩu là (Lưu ý: Để có khả năng tùy chỉnh hơn, bạn cần xem đây là cách bạn sử dụng bcrypt cho mật khẩu băm trong PHP?):

crypt($password, $salt);

Một loại muối thường là một chuỗi ngẫu nhiên mà bạn thêm vào cuối tất cả các mật khẩu của bạn khi bạn băm chúng. Sử dụng muối có nghĩa là nếu ai đó nhận được cơ sở dữ liệu của bạn, họ không thể kiểm tra băm cho mật khẩu thông thường. Kiểm tra cơ sở dữ liệu được gọi bằng cách sử dụng bảng cầu vồng. Bạn nên luôn luôn sử dụng muối khi băm!

Dưới đây là bằng chứng của tôi cho các lỗ hổng tấn công va chạm SHA1 và MD5: http://www.schneier.com/blog/archives/2012/10/when_will_we_se.html, http://eprint.iacr.org/2010/413.pdf , http:
http://www.schneier.com/blog/archives/2012/10/when_will_we_se.html, http://eprint.iacr.org/2010/413.pdf,
http://people.csail.mit.edu/yiqun/SHA1AttackProceedingVersion.pdf,
http://conf.isi.qut.edu.au/auscert/proceedings/2006/gauravaram06collision.pdf and
Understanding sha-1 collision weakness

Bạn có thể lưu trữ mật khẩu trong MySQL không?

Thông tin cần thiết cho các máy khách kết nối với máy chủ MySQL có thể bao gồm mật khẩu.Phần này mô tả cách gán mật khẩu cho tài khoản MySQL.MySQL lưu trữ thông tin đăng nhập trong bảng người dùng trong cơ sở dữ liệu hệ thống MySQL.MySQL stores credentials in the user table in the mysql system database.

Làm cách nào để đặt mật khẩu cho cơ sở dữ liệu MySQL?

Trong máy khách MySQL, hãy yêu cầu máy chủ tải lại các bảng cấp để các câu lệnh quản lý tài khoản hoạt động: MySQL> Đặc quyền xả; sau đó thay đổi mật khẩu tài khoản '@' 'localhost'.Thay thế mật khẩu bằng mật khẩu mà bạn muốn sử dụng.mysql> FLUSH PRIVILEGES; Then change the 'root'@'localhost' account password. Replace the password with the password that you want to use.

Mật khẩu có thể được lưu trữ trong cơ sở dữ liệu không?

Trong một số trường hợp, mật khẩu được lưu trữ trong cơ sở dữ liệu sau khi được mã hóa bởi một thuật toán có thể đảo ngược (ROT13, mã hóa mặt nạ). (rot13, mask encryption…).

Kiểu dữ liệu để lưu trữ mật khẩu trong MySQL là gì?

MD5 - nó có thể sử dụng char (32) hoặc nhị phân (16).SHA-1-nó có thể sử dụng loại dữ liệu char (40) hoặc nhị phân (20).char(32) or BINARY(16). SHA-1 − It can use data type char(40) or BINARY(20).