Mã hóa mật khẩu cho tệp cấu hình

Thoát ký tự mật khẩu đúng chuẩn cho JSON, YAML, TOML, XML, .properties của Java, INI, chuỗi kết nối URL và chuỗi SQL để đọc lại không bị thay đổi.

Dán kết quả vào phần giá trị của thiết lập. YAML dùng nháy đơn khi có thể, TOML dùng chuỗi literal khi có thể, dạng URL mã hóa phần trăm mọi byte trừ A–Z a–z 0–9 - . _ ~, còn SQL nhân đôi dấu nháy đơn (SQL chuẩn; MySQL bật thoát bằng gạch chéo ngược thì còn phải nhân đôi \).

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.

Mã hóa mật khẩu cho tệp cấu hình là gì?

Dán mật khẩu để nhận nó được thoát ký tự đúng cách cho tám định dạng cấu hình cùng lúc: JSON, YAML, TOML, XML, .properties của Java, INI, URL/chuỗi kết nối và chuỗi ký tự SQL. Mỗi kết quả khi phân tích lại đều cho đúng giá trị gốc.

Cách sử dụng Mã hóa mật khẩu cho tệp cấu hình

  1. Nhập mật khẩu vào ô Mật khẩu.
  2. Tìm định dạng bạn cần trong danh sách.
  3. Sao chép giá trị đã thoát bằng nút Sao chép của nó.
  4. Dán vào phần giá trị trong cấu hình của bạn.

Ví dụ

Đầu vào
p@ss'w"rd$1
Đầu ra
JSON "p@ss'w\"rd$1"
YAML 'p@ss''w"rd$1'
TOML "p@ss'w\"rd$1"
XML p@ss'w"rd$1
URL p%40ss%27w%22rd%241
SQL 'p@ss''w"rd$1'

Khi nào nên dùng Mã hóa mật khẩu cho tệp cấu hình

Dùng mỗi khi bạn tự tay đưa khóa bí mật vào tệp cấu hình hoặc chuỗi kết nối. Với khóa bí mật production, hãy ưu tiên trình quản lý bí mật hoặc biến môi trường.

Mã hóa mật khẩu cho tệp cấu hình hoạt động như thế nào

JSON dùng JSON.stringify. YAML dùng scalar nháy đơn (với '' cho ') trừ khi ký tự điều khiển buộc phải dùng nháy kép. TOML dùng chuỗi literal 'string' khi có thể, nếu không thì dùng chuỗi cơ bản với các chuỗi thoát \" \\ và \uXXXX. XML thoát & < > " ' và tab/xuống dòng thành tham chiếu ký tự. .properties thoát \, =, :, #, !, dấu cách ở đầu và ký tự ngoài ASCII thành \uXXXX. Phần userinfo của URL mã hóa phần trăm mọi byte trừ A–Z a–z 0–9 - . _ ~. SQL nhân đôi dấu nháy đơn. INI không có chuẩn thoát ký tự, nên giá trị có " hoặc xuống dòng được báo là không an toàn.

Các Trường Hợp Sử Dụng Phổ Biến

  • Đưa mật khẩu có @ và : vào URL kết nối PostgreSQL hoặc MongoDB
  • Thêm khóa bí mật vào tệp YAML của Kubernetes hoặc Ansible
  • Thoát mật khẩu trong tệp application.properties của Spring
  • Thêm người dùng kiểm thử bằng câu lệnh SQL

Câu Hỏi Thường Gặp

Vì sao mật khẩu trong chuỗi kết nối phải được mã hóa URL?

Các ký tự như @, :, / và # có ý nghĩa đặc biệt trong URL; một dấu @ không được mã hóa khiến trình phân tích hiểu một phần mật khẩu là tên máy chủ.

Chuỗi SQL có an toàn trước SQL injection không?

Đó là cách thoát ký tự SQL chuẩn và đúng, nhưng trong mã ứng dụng hãy luôn ưu tiên truy vấn có tham số.

Vì sao INI bị đánh dấu không an toàn với một số giá trị?

INI không có cách chuẩn để thoát dấu nháy kép hoặc xuống dòng, và các trình phân tích xử lý khác nhau, nên công cụ từ chối thay vì đoán.

Khám phá thêm danh mục