Cách mã hóa mật khẩu trong cơ sở dữ liệu mysql

Mã hóa là phương pháp hoặc quá trình chuyển đổi dữ liệu hoặc mật khẩu bình thường (văn bản gốc) thành thông điệp hoặc khóa không thể đọc được (Bản mã). điều đó có nghĩa là lưu trữ mật khẩu của bạn ở dạng đơn giản thay vì lưu trữ một mật khẩu đơn giản là một thực tế tồi, bạn có thể lưu trữ mật khẩu được mã hóa vào cơ sở dữ liệu của mình để không ai có thể dễ dàng đọc được mật khẩu của bạn khi bạn yêu cầu giải mã mật khẩu được sử dụng

2. Tại sao chúng ta cần lưu trữ mật khẩu được mã hóa?

mã hóa được sử dụng để bảo vệ dữ liệu nhạy cảm của bạn khỏi những người dùng trái phép. nó cho phép bạn bảo vệ dữ liệu một cách an toàn, tất cả đều ở cấp độ ngành được sử dụng để lưu trữ mật khẩu được mã hóa vào cơ sở dữ liệu của bạn để ngay cả quản trị viên cũng không thể hiểu được mật khẩu của bạn. một từ công ty không bao giờ sử dụng các kỹ thuật lưu trữ mật khẩu đơn giản mà họ luôn lưu trữ mật khẩu được mã hóa. và nếu bạn đang làm việc cho công ty thì cách tốt nhất là lưu trữ mật khẩu hoặc tin nhắn được mã hóa

3. mật khẩu băm là gì?

đó là mã hóa một chiều bằng cách sử dụng nó, bạn cũng có thể thử lại mật khẩu đã mã hóa thành mật khẩu ban đầu. nó sử dụng một thuật toán để lưu trữ hoặc mã hóa mật khẩu của chúng tôi

hãy để tôi giải thích với một ví dụ,

Giả sử bạn đặt mật khẩu của mình thành “Vishal”. Băm hoặc chạy nó thông qua thuật toán băm, nó sẽ cung cấp cho bạn một chuỗi ngẫu nhiên (hãy giả sử) “hsuhuuwrewerwr”. bây giờ do thuật toán băm, Facebook ngay lập tức quên “Vishal” và chỉ lưu trữ “hsuhuuwrewerwr”. Giờ đây, mỗi khi bạn nhập mật khẩu “Vishal”, họ sẽ băm mật khẩu đó và Khớp nếu kết quả là “hsuhuuwrewerwr” và quyết định rằng bạn có phải là người dùng được xác thực hay không. ngay cả facebook cũng không biết mật khẩu thực của bạn vì nó đã được mã hóa

để băm mật khẩu Thư viện bcrypt giúp bạn băm mật khẩu. để sử dụng nó, chúng ta cần cài đặt thư viện bcrypt

4. Làm cách nào để mã hóa mật khẩu trong nodejs?

cài đặt thư viện bcrypt bằng lệnh

npm install bcrypt

nghe nói chúng tôi sử dụng auto-gen a salt and hash method

bcrypt.hash(mypassword, saltRounds, function(err, hash) {// Store hash in your password DB.});

trong đoạn mã trên, mypassword là mật khẩu người dùng của bạn mà bạn sẽ nhận được từ người dùng đăng ký saltRrounds, đây là một giá trị duy nhất có thể được thêm vào cuối mật khẩu để tạo một giá trị băm khác. Điều này thêm một lớp bảo mật cho quá trình băm, đặc biệt là chống lại các cuộc tấn công vũ phu

bạn sẽ nhận được giá trị băm của mật khẩu thành hàm băm, bạn cần lưu trữ hàm băm vào cơ sở dữ liệu của mình

5. lưu trữ mật khẩu được mã hóa vào cơ sở dữ liệu MySQL của bạn

sau khi cài đặt thư viện bcrypt, bạn cần yêu cầu tệp đó vào api đăng ký của mình

tạo đăng ký API bài đăng chấp nhận first_name,last_name, tên người dùng, mật khẩu từ người đưa thư. nếu bạn chưa biết cách tạo post API trong nodejs thì tham khảo link này. sữa đông trong nodejs

sau đó sử dụng bcrypt. mã đã cho trong quá khứ ở đầu tệp người dùng

var bcrypt = require('bcrypt');

yêu cầu mô-đun bcrypt

Mã đã cho trong quá khứ vào người dùng của bạn. js để tạo đăng ký api

router.post('/', function(req, res, next) {firstname=req.body.first_namelastname=req.body.last_nameusername=req.body.usernamerouter.post('/', function(req, res, next) {firstname=req.body.first_namelastname=req.body.last_nameusername=req.body.usernamepassword=req.body.passwordbcrypt.hash(password,10, function(err, hash) {var sql = "INSERT INTO curd_table (first_name,last_name,username,password) VALUES ?";var values = [[firstname,lastname,username,hash]]con.query(sql,[values], function (err, result, fields) {if (err) throw err;res.send({message: 'Table Data',Total_record:result.length,result:result});});});});

nghe nói chúng tôi tạo api bài đăng và sử dụng chức năng bcrypt chấp nhận 3 tham số 1 là mật khẩu người dùng của bạn 2 là số lượng muối và 3 là chức năng gọi lại. bạn sẽ nhận được mật khẩu được mã hóa thành hàm băm

Chạy người đưa thư của bạn bằng cách chèn dữ liệu

người đưa thư (đăng ký API)

xong. vâng, bạn đã mã hóa thành công bằng nodejs với cơ sở dữ liệu MySQL

Mật khẩu của bạn được lưu trữ ở định dạng băm

Tôi hy vọng bạn đã hoàn thành thành công tất cả các bước trên

cảm ơn vì đã đọc và bạn muốn tìm hiểu cách tạo ứng dụng sữa đông bằng nodejs thì hãy theo liên kết Ứng dụng sữa đông trong Nodejs

Trong máy chủ MySQL, chúng tôi phải giải thích hàm mật khẩu () và cách nó sẽ khôi phục mật khẩu ở dạng chuỗi của nó. Chức năng mật khẩu được sử dụng chủ yếu để xác thực. Hàm mật khẩu mã hóa chuỗi thành dạng nhị phân. Khôi phục mật khẩu ở dạng văn bản và đặt mật khẩu cũ và chọn nó ở dạng văn bản. Hàm mật khẩu trả về nó ở dạng chuỗi và khôi phục mật khẩu ở dạng văn bản thuần túy. Mật khẩu cũng lưu trữ dưới dạng bản ghi trên máy chủ

Trong các hình dưới đây, chúng tôi có một bảng cơ sở dữ liệu "nhân viên" và sử dụng nó với một số truy vấn với kết quả hiển thị như sau

mysql-> chọn * từ myworld;

img 1.gif

Sử dụng chức năng mật khẩu để mã hóa tên

Ở đây chúng ta phải mã hóa chức năng mật khẩu trên cột cụ thể trên bảng bằng câu lệnh chọn, chẳng hạn như

mysql-> chọn mật khẩu (first_name) từ myworld

img 2.gif

Để hiển thị tài khoản nào tồn tại trong MySQL

Ở đây chúng ta phải hiển thị bảng người dùng và kiểm tra xem mật khẩu của họ có trống không bằng cách sử dụng câu lệnh sau

mysql-> chọn người dùng, máy chủ, mật khẩu từ mysql. người sử dụng;

img 3.gif

Sử dụng mật khẩu cũ để mã hóa tên

Bằng cách sử dụng câu lệnh chọn này, hãy hiển thị mật khẩu cũ trên một cột cụ thể trên bảng

mysql-> chọn old_password(last_name) từ myworld;

img 4.gif

OLD_PASSWORD(str)

Nó trả về giá trị của mật khẩu cũ và triển khai mật khẩu() dưới dạng chuỗi nhị phân

mysql-> select old_password("text");

OLD_PASSWORD.gif

Tính toán và trả về một mật khẩu

Mật khẩu (chuỗi) tính toán và trả về một chuỗi mật khẩu từ chuỗi mật khẩu văn bản thuần túy và nó trả về một chuỗi nhị phân.
mysql->chọn mật khẩu('asingh');

returns a password.gif

Lưu trữ mật khẩu

Với việc sử dụng SHA1, nó giúp bảo vệ mật khẩu tốt hơn so với việc lưu trữ chúng dưới dạng văn bản thuần túy

Bạn có thể mã hóa cơ sở dữ liệu MySQL không?

Để kích hoạt mã hóa cho vùng bảng hệ thống mysql, hãy chỉ định tên vùng bảng và tùy chọn ENCRYPTION trong câu lệnh ALTER TABLESPACE . mysql> THAY ĐỔI TABLESPACE mysql ENCRYPTION = 'Y'; .

Cách mã hóa mật khẩu trong MySQL PHP?

Quá trình như vậy. .
Tạo khóa mã hóa dữ liệu (DEK)
Mã hóa dữ liệu bằng mã hóa khóa bí mật
Gửi khóa mã hóa duy nhất (DEK) tới Cloud KMS để mã hóa, khóa này sẽ trả về KEK
Lưu trữ dữ liệu mã hóa và khóa mã hóa (KEK) cạnh nhau
Hủy khóa đã tạo (DEK)

Mật khẩu được lưu trữ trong MySQL như thế nào?

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 . Các hoạt động chỉ định hoặc sửa đổi mật khẩu chỉ được phép cho người dùng có đặc quyền CREATE USER hoặc, cách khác, đặc quyền cho cơ sở dữ liệu mysql ( đặc quyền INSERT để tạo tài khoản mới, đặc quyền UPDATE để sửa đổi tài khoản hiện có).