Nói mỗi hàng trong một bảng có dữ liệu liên quan đến một người dùng cụ thể. Người dùng có mật khẩu để truy cập vào hệ thống.Các cột được mã hóa MySQL
Làm cách nào để mã hóa cột dữ liệu bằng InnoDB sao cho không ai khác ngoài dữ liệu người dùng có thể đọc dữ liệu? Tôi đã suy nghĩ về một cái gì đó giống như sử dụng một trong các chức năng mã hóa MySQL (nói AES) với một khóa dựa trên một băm tính từ mật khẩu của người dùng.
Có ai có bất kỳ gợi ý nào về cách tôi có thể thực hiện việc này không? Có phải tôi đang trên đường ray bên phải không ?
Một trong những câu trả lời dưới đây
Vấn đề sửa đổi mật khẩu của người sử dụng liên quan đến việc tái mã hóa khóa sử dụng bằng mật khẩu mới mà là nhiều hơn nữa thẳng về phía trước hơn tái mã hóa toàn bộ loạt các dữ liệu của người dùng có thể tùy ý lớn. Khóa người dùng vẫn giữ nguyên trên toàn bộ dữ liệu người dùng trong hệ thống.
Điều này giúp ích như thế nào? Nói mật khẩu là pass1. Và có một loạt các bản ghi được mã hóa với một khóa được tạo ra từ điều này. Nếu người dùng đặt lại mật khẩu để pass2, tôi không có cách nào giải mã dữ liệu đã được mã hóa bằng pass1. Trong trường hợp người dùng quên hoàn toàn mật khẩu, tất cả dữ liệu mã hóa của anh ta sẽ bị mất.
Tôi không liên quan đến tình huống cụ thể của bạn, nhưng tôi thấy bài viết này hữu ích khi giới thiệu kỹ hơn về các vấn đề liên quan: http://i.amniels.com/mysql-database-encryption-using-public-private-keys –