Thoát ký tự mật khẩu cho .env
Ghi mật khẩu thành dòng .env mà shell, dotenv của Node.js, python-dotenv hoặc docker --env-file đọc lại chính xác, kể cả dấu nháy và ký tự $.
Mỗi dòng được đặt trong dấu nháy sao cho trình phân tích đọc lại đúng mật khẩu của bạn: shell dùng nháy đơn và viết mỗi dấu nháy thành '\'', dotenv của Node chọn nháy đơn, nháy kép hoặc backtick, python-dotenv thoát \ và \' bên trong nháy đơn, còn docker --env-file lấy nguyên phần còn lại của dòng (không có nháy).
Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.
Thoát ký tự mật khẩu cho .env là gì?
Mật khẩu có dấu nháy, dấu đô la, # hoặc dấu gạch chéo ngược thường làm hỏng tệp .env hoặc bị thay đổi do mở rộng biến. Công cụ này viết các dòng KEY=value mà mỗi trình phân tích đều đọc lại đúng mật khẩu của bạn, và cảnh báo khi một trình phân tích không biểu diễn được giá trị.
Cách sử dụng Thoát ký tự mật khẩu cho .env
- Nhập Tên biến, ví dụ DB_PASSWORD.
- Nhập mật khẩu vào ô Mật khẩu.
- Sao chép dòng cho đích của bạn: shell/POSIX, dotenv của Node.js, python-dotenv hoặc docker run --env-file.
- Dán vào tệp .env của bạn.
Ví dụ
Biến DB_PASSWORD, mật khẩu p@ss'w"rd$1
Shell: DB_PASSWORD='p@ss'\''w"rd$1' Node dotenv: DB_PASSWORD=`p@ss'w"rd$1` python-dotenv: DB_PASSWORD='p@ss\'w"rd$1' docker --env-file: DB_PASSWORD=p@ss'w"rd$1
Khi nào nên dùng Thoát ký tự mật khẩu cho .env
Dùng mỗi khi khóa bí mật chứa ký tự không phải chữ cái và chữ số. Nếu bạn tự chọn được khóa bí mật, một giá trị dài chỉ gồm chữ và số sẽ tránh hoàn toàn vấn đề thoát ký tự.
Thoát ký tự mật khẩu cho .env hoạt động như thế nào
Shell: giá trị được đặt trong dấu nháy đơn và mỗi ' trở thành '\'' (bên trong nháy đơn không có mở rộng biến). dotenv của Node (v15+): nháy đơn được giữ nguyên văn; nếu giá trị chứa ', dùng nháy kép (chỉ \n và \r được diễn giải), nếu không thì dùng backtick; giá trị kết thúc bằng dấu gạch chéo ngược hoặc chứa cả ba loại dấu nháy không biểu diễn được. python-dotenv: nháy đơn, với \ và ' được thoát thành \\ và \'. docker --env-file: không đặt dấu nháy; phần còn lại của dòng chính là giá trị, nên không thể có xuống dòng.
Các Trường Hợp Sử Dụng Phổ Biến
- Thêm mật khẩu cơ sở dữ liệu có $ và dấu nháy vào tệp .env
- Chuẩn bị khóa bí mật cho docker run --env-file
- Sửa giá trị dotenv bị cắt ở dấu #
- Viết câu lệnh export cho shell script
Câu Hỏi Thường Gặp
Sao không dùng luôn nháy kép?
Bên trong nháy kép, shell và một số trình nạp dotenv mở rộng $VAR và diễn giải dấu gạch chéo ngược, khiến mật khẩu bị thay đổi một cách âm thầm.
Vì sao dòng cho docker --env-file không có dấu nháy?
docker run --env-file không xử lý dấu nháy; dấu nháy sẽ trở thành một phần của giá trị.
Docker Compose có dùng cùng quy tắc không?
Trình phân tích .env của Docker Compose có quy tắc nội suy riêng mà công cụ này không mô phỏng; hãy xem tài liệu Compose hoặc dùng $$ cho ký tự đô la nguyên văn ở đó.