Đảm bảo rằng Vim có hỗ trợ mã hóa của hệ thống của bạn
Một số bản phân phối Linux, bao gồm cả Ubuntu, bao gồm một phiên bản tối thiểu của vim theo mặc định, chỉ dành cho chỉnh sửa văn bản cơ bản. Ví dụ, Ubuntu gọi gói này là "vim-tiny". Nếu bạn cố gắng sử dụng mã hóa trong phiên bản vim tối thiểu như vậy, bạn sẽ thấy thông báo "Xin lỗi, lệnh này không khả dụng trong phiên bản này".
sudo apt install vim
Cách mã hóa tệp bằng mật khẩu
Quá trình cơ bản là tương đối đơn giản nếu bạn biết cách sử dụng vi. Nếu không, bạn có thể bị treo trên giao diện phương thức của vi. Khi bạn mở một tập tin văn bản trong vim, có hai chế độ. Theo mặc định, bạn đang ở "chế độ lệnh", nơi bạn có thể sử dụng các phím trên bàn phím để thực hiện các lệnh. Bạn cũng có thể nhấn “i” để vào “Chế độ chèn”, nơi bạn có thể nhập bình thường và di chuyển con trỏ xung quanh bằng các phím mũi tên, như bạn làm trong các trình chỉnh sửa văn bản khác. Để thoát chế độ chèn, nhấn “Esc” và bạn sẽ quay lại chế độ lệnh.
Đầu tiên, khởi động vim. Ví dụ, lệnh sau sẽ khởi động vim và trỏ nó vào một tệp có tên là "example" trong thư mục hiện tại. Nếu tệp đó không tồn tại, vim sẽ tạo tệp có tên “example” trong thư mục hiện tại khi bạn lưu:
vi example
Bạn cũng có thể trỏ vi vào một đường dẫn khác bằng lệnh như dưới đây. Bạn không phải tạo tệp trong thư mục hiện tại.
vi /path/to/file
:X
và nhấn Enter.
Vim sẽ cảnh báo rằng bạn đang sử dụng phương pháp mã hóa yếu theo mặc định. Chúng tôi sẽ hướng dẫn bạn cách sử dụng phương thức mã hóa an toàn hơn sau này.
:wq
và nhấn Enter để ghi tệp vào đĩa và thoát khỏi Vim.
vi example
“-Vim sẽ hỏi bạn mật khẩu được liên kết với tệp.
Cảnh báo: Không lưu tệp nếu bạn mở tệp và thấy vô nghĩa. Thao tác này sẽ lưu dữ liệu bị hỏng trở lại tệp và ghi đè dữ liệu đã mã hóa của bạn. Chỉ cần chạy
:q
để thoát khỏi Vim mà không lưu tệp vào đĩa.
vim /path/to/file
“, Bạn có thể chạy lệnh sau để có vim tạo hoặc mở một tệp và làm cho nó ngay lập tức nhắc bạn mã hóa tệp bằng mật khẩu:
vi -x /path/to/file
Lưu ý rằng bạn cần sử dụng x chữ thường ở đây, trong khi bạn cần sử dụng chữ X trên khi chạy lệnh mã hóa được kết hợp từ bên trong Vim.
Làm thế nào để kích hoạt mã hóa mạnh hơn trong Vim
Theo mặc định, Vim sử dụng mã hóa rất xấu cho các tệp này. Phương thức mã hóa “zip” hoặc “pkzip” mặc định tương thích ngược với các phiên bản 7.2 trở xuống của vim. Thật không may, nó có thể bị nứt rất, rất dễ dàng - ngay cả trên phần cứng từ những năm 90. Như tài liệu chính thức đặt nó: “Thuật toán được sử dụng cho“mã hóa”,“zip”là có thể phá vỡ. Một phím 4 ký tự trong khoảng một giờ, một phím 6 ký tự trong một ngày (trên PC Pentium 133).”
Bạn không nên sử dụng mã hóa pkzip cho tài liệu văn bản của mình nếu bạn muốn có bất kỳ bảo mật nào. Tuy nhiên, Vim cung cấp các phương thức mã hóa tốt hơn. Phiên bản 7.3 của Vim phát hành năm 2010 đã thêm phương thức mã hóa “blowfish”, tốt hơn. Phiên bản 7.4.399 phát hành vào năm 2014 bao gồm một phương pháp mã hóa Blowfish mới giúp sửa chữa các vấn đề bảo mật trong phương thức mã hóa “blowfish” ban đầu và gọi nó là “blowfish2”.
Vấn đề duy nhất là các tệp bạn tạo với các phương thức mã hóa mạnh hơn yêu cầu các phiên bản Vim mới hơn này. Vì vậy, nếu bạn muốn sử dụng mã hóa "blowfish2", bạn sẽ chỉ có thể mở tệp đó bằng các phiên bản Vim 7.4.399 trở lên. Miễn là bạn ổn với điều đó, bạn nên sử dụng phương pháp mã hóa mạnh nhất có thể.
Để kiểm tra phương thức mã hóa nào đang sử dụng, hãy mở tệp trong vim, nhấn phím Esc để đảm bảo bạn đang ở chế độ lệnh, nhập lệnh sau và nhấn Enter.
:setlocal cm?
"Cm" ở đây là viết tắt của "cryptmethod".
:setlocal cm=blowfish2:setlocal cm=blowfish:setlocal cm=zip
:w
lệnh để ghi tệp vào đĩa hoặc
:wq
lệnh để ghi tập tin vào đĩa và thoát.
Cách thay đổi hoặc xóa mật khẩu
Để xóa mật khẩu khỏi một tệp, hãy mở tệp đó trong Vim và chạy
:X
chỉ huy. Bạn sẽ được nhắc cung cấp khóa mã hóa mới. Nhập mật khẩu mới bạn muốn sử dụng tại đây. Để xóa hoàn toàn mật khẩu, hãy để trống trường mật khẩu và chỉ cần nhấn Enter hai lần.
Lưu tệp và thoát sau đó với
:wq
. Tệp sẽ được giải mã, vì vậy bạn sẽ không được nhắc nhập mật khẩu khi mở tệp trong tương lai.