Skip to content

Repository files navigation

LPTV Password Manager

Một ứng dụng quản lý mật khẩu dòng lệnh (CLI) hiệu năng cao, bảo mật và dễ sử dụng, được phát triển bằng C++17. LPTV giúp bạn lưu trữ và quản lý thông tin tài khoản cục bộ một cách an toàn.

🌟 Tính năng nổi bật

  • Bảo mật cao:
    • Argon2id: Thuật toán băm Master Password chống lại các cuộc tấn công brute-force phần cứng tối ưu nhất hiện nay.
    • AES-256-GCM: Mã hóa đối xứng đảm bảo cả tính bảo mật và tính toàn vẹn của dữ liệu.
  • Quản lý thông minh & linh hoạt:
    • Phân loại tài khoản theo danh mục (Category).
    • Tìm kiếm nhanh chóng theo tên dịch vụ, tên đăng nhập hoặc danh mục.
  • Trình tạo mật khẩu ngẫu nhiên: Hỗ trợ tạo mật khẩu mạnh với độ dài tùy chọn và tùy biến ký tự.
  • Interactive Shell tiện lợi: Chế độ dòng lệnh tương tác không cần gõ lại tiền tố lệnh, tự động đóng phiên (tự thoát chương trình) sau 1 phút để tránh rò rỉ dữ liệu khi người dùng rời đi.
  • Tự động xóa Clipboard: Sao chép mật khẩu vào bộ nhớ tạm thời và tự động xóa sau 30 giây để tránh việc phần mềm độc hại đọc trộm.
  • Lưu trữ nhị phân an toàn: Toàn bộ dữ liệu được lưu trữ dưới dạng nhị phân mã hóa trong thư mục ẩn .lptv/, đảm bảo không ai có thể đọc trộm file nếu không có Master Password.

🛠 Công nghệ sử dụng

  • Ngôn ngữ lập trình: C++17
  • Hệ điều hành tối ưu: Windows (Win32 API)
  • Công cụ Build: CMake (3.10+)
  • Thư viện bảo mật cốt lõi:
    • OpenSSL: Cung cấp giải thuật mã hóa AES-256-GCM và sinh số ngẫu nhiên bảo mật (CSPRNG).
    • Argon2: Hàm dẫn xuất khóa (KDF) mạnh mẽ bảo vệ Master Password.

🚀 Hướng dẫn Cài đặt & Biên dịch

Yêu cầu tiên quyết

Để build ứng dụng, máy tính của bạn cần cài đặt sẵn:

  1. Trình biên dịch hỗ trợ C++17 (ví dụ: MinGW-w64, GCC, hoặc Clang).
  2. CMake 3.10 trở lên.
  3. Thư viện libargon2OpenSSL.

Các bước Build dự án (trên Windows dùng MinGW)

Trước tiên, bạn cần clone thư viện secure-string vào thư mục external/Secure-string:

# Clone thư viện secure-string vào thư mục external
git clone "https://github.com/VuLeCoder/Secure-string" external/Secure-string

Sau đó, mở PowerShell/CMD tại thư mục dự án và chạy các lệnh sau để build:

# 1. Tạo và di chuyển vào thư mục build
mkdir build
cd build
# 2. Cấu hình dự án bằng CMake
cmake .. -G "MinGW Makefiles"# 3. Biên dịch mã nguồn
mingw32-make

Sau khi hoàn thành, file thực thi lptv.exe sẽ được tạo ra trong thư mục build. Bạn có thể thêm đường dẫn của file này vào biến môi trường PATH để gọi lệnh lptv từ bất kỳ đâu.

💡 Các lệnh nổi bật & Cách sử dụng

1. lptv shell (Interactive Shell - Khuyên dùng)

Vào chế độ shell tương tác giúp thực thi các lệnh tiếp theo cực nhanh mà không cần gõ tiền tố lptv.

🔒 Bảo mật: Shell sẽ tự động kết thúc phiên làm việc và đóng chương trình sau 1 phút kể từ lúc mở.

  • Cách dùng:lptv shell

2. lptv add (Thêm tài khoản/danh mục)

Thêm một tài khoản đăng nhập cho một dịch vụ. Chương trình sẽ nhắc bạn nhập các thông tin một cách bảo mật.

  • Thêm tài khoản:lptv add <tên_dịch_vụ>
  • Thêm danh mục mới:lptv add -c <tên_danh_mục> hoặc lptv add --category <tên_danh_mục>

3. lptv list hoặc lptv ls (Liệt kê tài khoản/danh mục)

Liệt kê danh sách các tài khoản hoặc danh mục hiện có.

  • Liệt kê tài khoản:lptv list hoặc lptv ls
  • Liệt kê theo danh mục:lptv list <tên_danh_mục> hoặc lptv ls <tên_danh_mục>
  • Liệt kê tất cả danh mục:lptv list -c hoặc lptv ls -c (hoặc dùng --category)

4. lptv get (Truy xuất mật khẩu & Copy nhanh)

Xem thông tin chi tiết tài khoản của một dịch vụ.

  • Xem mật khẩu ẩn (mặc định):lptv get <tên_dịch_vụ>
  • Hiện mật khẩu dạng text:lptv get <tên_dịch_vụ> --show
  • Sao chép nhanh: Chương trình sẽ hỏi bạn có muốn copy mật khẩu vào Clipboard hay không. Nếu đồng ý, mật khẩu sẽ tự động bị xóa khỏi bộ nhớ tạm sau 30 giây.

5. lptv search (Tìm kiếm tài khoản)

Tìm kiếm tài khoản dựa trên từ khóa khớp với tên dịch vụ, tên đăng nhập hoặc danh mục.

  • Cách dùng:lptv search <từ_khóa>

6. lptv generate hoặc lptv gen (Tạo mật khẩu mạnh)

Tự động sinh một chuỗi mật khẩu ngẫu nhiên, an toàn với độ dài và các bộ ký tự tùy biến.

  • Tạo mật khẩu 20 ký tự:lptv generate 20 hoặc lptv gen 20
  • Tùy chọn tạo mật khẩu:
    • -u, --no-upper: Loại bỏ chữ hoa.
    • -l, --no-lower: Loại bỏ chữ thường.
    • -d, --no-digits: Loại bỏ chữ số.
    • -s, --no-special: Loại bỏ ký tự đặc biệt.
    • Ví dụ:lptv gen 16 -s (tạo mật khẩu 16 ký tự không có ký tự đặc biệt).

📂 Cấu trúc thư mục dự án

.
├── include/ # Các tệp tiêu đề (.h)
│ ├── cli/ # Xử lý Console, Parser lệnh và Dispatcher
│ ├── core/ # Logic nghiệp vụ chính (PasswordManager, Session, Vault)
│ ├── storage/ # Đọc/Ghi dữ liệu dưới định dạng nhị phân bảo mật
│ └── utils/ # Các tiện ích (mã hóa, sinh số ngẫu nhiên, hằng số)
├── src/ # File mã nguồn (.cpp) tương ứng
├── external/ # Thư viện ngoài (SecureString cấp phát bộ nhớ an toàn)
└── CMakeLists.txt # File cấu hình build CMake

About

Một ứng dụng quản lý mật khẩu dòng lệnh (lptv)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - VuLeCoder/Password-manager-cli: Một ứng dụng quản lý mật khẩu dòng lệnh (lptv) · GitHub
Skip to content

Repository files navigation

LPTV Password Manager

Một ứng dụng quản lý mật khẩu dòng lệnh (CLI) hiệu năng cao, bảo mật và dễ sử dụng, được phát triển bằng C++17. LPTV giúp bạn lưu trữ và quản lý thông tin tài khoản cục bộ một cách an toàn.

🌟 Tính năng nổi bật

  • Bảo mật cao:
    • Argon2id: Thuật toán băm Master Password chống lại các cuộc tấn công brute-force phần cứng tối ưu nhất hiện nay.
    • AES-256-GCM: Mã hóa đối xứng đảm bảo cả tính bảo mật và tính toàn vẹn của dữ liệu.
  • Quản lý thông minh & linh hoạt:
    • Phân loại tài khoản theo danh mục (Category).
    • Tìm kiếm nhanh chóng theo tên dịch vụ, tên đăng nhập hoặc danh mục.
  • Trình tạo mật khẩu ngẫu nhiên: Hỗ trợ tạo mật khẩu mạnh với độ dài tùy chọn và tùy biến ký tự.
  • Interactive Shell tiện lợi: Chế độ dòng lệnh tương tác không cần gõ lại tiền tố lệnh, tự động đóng phiên (tự thoát chương trình) sau 1 phút để tránh rò rỉ dữ liệu khi người dùng rời đi.
  • Tự động xóa Clipboard: Sao chép mật khẩu vào bộ nhớ tạm thời và tự động xóa sau 30 giây để tránh việc phần mềm độc hại đọc trộm.
  • Lưu trữ nhị phân an toàn: Toàn bộ dữ liệu được lưu trữ dưới dạng nhị phân mã hóa trong thư mục ẩn .lptv/, đảm bảo không ai có thể đọc trộm file nếu không có Master Password.

🛠 Công nghệ sử dụng

  • Ngôn ngữ lập trình: C++17
  • Hệ điều hành tối ưu: Windows (Win32 API)
  • Công cụ Build: CMake (3.10+)
  • Thư viện bảo mật cốt lõi:
    • OpenSSL: Cung cấp giải thuật mã hóa AES-256-GCM và sinh số ngẫu nhiên bảo mật (CSPRNG).
    • Argon2: Hàm dẫn xuất khóa (KDF) mạnh mẽ bảo vệ Master Password.

🚀 Hướng dẫn Cài đặt & Biên dịch

Yêu cầu tiên quyết

Để build ứng dụng, máy tính của bạn cần cài đặt sẵn:

  1. Trình biên dịch hỗ trợ C++17 (ví dụ: MinGW-w64, GCC, hoặc Clang).
  2. CMake 3.10 trở lên.
  3. Thư viện libargon2OpenSSL.

Các bước Build dự án (trên Windows dùng MinGW)

Trước tiên, bạn cần clone thư viện secure-string vào thư mục external/Secure-string:

# Clone thư viện secure-string vào thư mục external
git clone "https://github.com/VuLeCoder/Secure-string" external/Secure-string

Sau đó, mở PowerShell/CMD tại thư mục dự án và chạy các lệnh sau để build:

# 1. Tạo và di chuyển vào thư mục build
mkdir build
cd build
# 2. Cấu hình dự án bằng CMake
cmake .. -G "MinGW Makefiles"# 3. Biên dịch mã nguồn
mingw32-make

Sau khi hoàn thành, file thực thi lptv.exe sẽ được tạo ra trong thư mục build. Bạn có thể thêm đường dẫn của file này vào biến môi trường PATH để gọi lệnh lptv từ bất kỳ đâu.

💡 Các lệnh nổi bật & Cách sử dụng

1. lptv shell (Interactive Shell - Khuyên dùng)

Vào chế độ shell tương tác giúp thực thi các lệnh tiếp theo cực nhanh mà không cần gõ tiền tố lptv.

🔒 Bảo mật: Shell sẽ tự động kết thúc phiên làm việc và đóng chương trình sau 1 phút kể từ lúc mở.

  • Cách dùng:lptv shell

2. lptv add (Thêm tài khoản/danh mục)

Thêm một tài khoản đăng nhập cho một dịch vụ. Chương trình sẽ nhắc bạn nhập các thông tin một cách bảo mật.

  • Thêm tài khoản:lptv add <tên_dịch_vụ>
  • Thêm danh mục mới:lptv add -c <tên_danh_mục> hoặc lptv add --category <tên_danh_mục>

3. lptv list hoặc lptv ls (Liệt kê tài khoản/danh mục)

Liệt kê danh sách các tài khoản hoặc danh mục hiện có.

  • Liệt kê tài khoản:lptv list hoặc lptv ls
  • Liệt kê theo danh mục:lptv list <tên_danh_mục> hoặc lptv ls <tên_danh_mục>
  • Liệt kê tất cả danh mục:lptv list -c hoặc lptv ls -c (hoặc dùng --category)

4. lptv get (Truy xuất mật khẩu & Copy nhanh)

Xem thông tin chi tiết tài khoản của một dịch vụ.

  • Xem mật khẩu ẩn (mặc định):lptv get <tên_dịch_vụ>
  • Hiện mật khẩu dạng text:lptv get <tên_dịch_vụ> --show
  • Sao chép nhanh: Chương trình sẽ hỏi bạn có muốn copy mật khẩu vào Clipboard hay không. Nếu đồng ý, mật khẩu sẽ tự động bị xóa khỏi bộ nhớ tạm sau 30 giây.

5. lptv search (Tìm kiếm tài khoản)

Tìm kiếm tài khoản dựa trên từ khóa khớp với tên dịch vụ, tên đăng nhập hoặc danh mục.

  • Cách dùng:lptv search <từ_khóa>

6. lptv generate hoặc lptv gen (Tạo mật khẩu mạnh)

Tự động sinh một chuỗi mật khẩu ngẫu nhiên, an toàn với độ dài và các bộ ký tự tùy biến.

  • Tạo mật khẩu 20 ký tự:lptv generate 20 hoặc lptv gen 20
  • Tùy chọn tạo mật khẩu:
    • -u, --no-upper: Loại bỏ chữ hoa.
    • -l, --no-lower: Loại bỏ chữ thường.
    • -d, --no-digits: Loại bỏ chữ số.
    • -s, --no-special: Loại bỏ ký tự đặc biệt.
    • Ví dụ:lptv gen 16 -s (tạo mật khẩu 16 ký tự không có ký tự đặc biệt).

📂 Cấu trúc thư mục dự án

.
├── include/ # Các tệp tiêu đề (.h)
│ ├── cli/ # Xử lý Console, Parser lệnh và Dispatcher
│ ├── core/ # Logic nghiệp vụ chính (PasswordManager, Session, Vault)
│ ├── storage/ # Đọc/Ghi dữ liệu dưới định dạng nhị phân bảo mật
│ └── utils/ # Các tiện ích (mã hóa, sinh số ngẫu nhiên, hằng số)
├── src/ # File mã nguồn (.cpp) tương ứng
├── external/ # Thư viện ngoài (SecureString cấp phát bộ nhớ an toàn)
└── CMakeLists.txt # File cấu hình build CMake

About

Một ứng dụng quản lý mật khẩu dòng lệnh (lptv)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - VuLeCoder/Password-manager-cli: Một ứng dụng quản lý mật khẩu dòng lệnh (lptv) · GitHub
Skip to content

Repository files navigation

LPTV Password Manager

Một ứng dụng quản lý mật khẩu dòng lệnh (CLI) hiệu năng cao, bảo mật và dễ sử dụng, được phát triển bằng C++17. LPTV giúp bạn lưu trữ và quản lý thông tin tài khoản cục bộ một cách an toàn.

🌟 Tính năng nổi bật

  • Bảo mật cao:
    • Argon2id: Thuật toán băm Master Password chống lại các cuộc tấn công brute-force phần cứng tối ưu nhất hiện nay.
    • AES-256-GCM: Mã hóa đối xứng đảm bảo cả tính bảo mật và tính toàn vẹn của dữ liệu.
  • Quản lý thông minh & linh hoạt:
    • Phân loại tài khoản theo danh mục (Category).
    • Tìm kiếm nhanh chóng theo tên dịch vụ, tên đăng nhập hoặc danh mục.
  • Trình tạo mật khẩu ngẫu nhiên: Hỗ trợ tạo mật khẩu mạnh với độ dài tùy chọn và tùy biến ký tự.
  • Interactive Shell tiện lợi: Chế độ dòng lệnh tương tác không cần gõ lại tiền tố lệnh, tự động đóng phiên (tự thoát chương trình) sau 1 phút để tránh rò rỉ dữ liệu khi người dùng rời đi.
  • Tự động xóa Clipboard: Sao chép mật khẩu vào bộ nhớ tạm thời và tự động xóa sau 30 giây để tránh việc phần mềm độc hại đọc trộm.
  • Lưu trữ nhị phân an toàn: Toàn bộ dữ liệu được lưu trữ dưới dạng nhị phân mã hóa trong thư mục ẩn .lptv/, đảm bảo không ai có thể đọc trộm file nếu không có Master Password.

🛠 Công nghệ sử dụng

  • Ngôn ngữ lập trình: C++17
  • Hệ điều hành tối ưu: Windows (Win32 API)
  • Công cụ Build: CMake (3.10+)
  • Thư viện bảo mật cốt lõi:
    • OpenSSL: Cung cấp giải thuật mã hóa AES-256-GCM và sinh số ngẫu nhiên bảo mật (CSPRNG).
    • Argon2: Hàm dẫn xuất khóa (KDF) mạnh mẽ bảo vệ Master Password.

🚀 Hướng dẫn Cài đặt & Biên dịch

Yêu cầu tiên quyết

Để build ứng dụng, máy tính của bạn cần cài đặt sẵn:

  1. Trình biên dịch hỗ trợ C++17 (ví dụ: MinGW-w64, GCC, hoặc Clang).
  2. CMake 3.10 trở lên.
  3. Thư viện libargon2OpenSSL.

Các bước Build dự án (trên Windows dùng MinGW)

Trước tiên, bạn cần clone thư viện secure-string vào thư mục external/Secure-string:

# Clone thư viện secure-string vào thư mục external
git clone "https://github.com/VuLeCoder/Secure-string" external/Secure-string

Sau đó, mở PowerShell/CMD tại thư mục dự án và chạy các lệnh sau để build:

# 1. Tạo và di chuyển vào thư mục build
mkdir build
cd build
# 2. Cấu hình dự án bằng CMake
cmake .. -G "MinGW Makefiles"# 3. Biên dịch mã nguồn
mingw32-make

Sau khi hoàn thành, file thực thi lptv.exe sẽ được tạo ra trong thư mục build. Bạn có thể thêm đường dẫn của file này vào biến môi trường PATH để gọi lệnh lptv từ bất kỳ đâu.

💡 Các lệnh nổi bật & Cách sử dụng

1. lptv shell (Interactive Shell - Khuyên dùng)

Vào chế độ shell tương tác giúp thực thi các lệnh tiếp theo cực nhanh mà không cần gõ tiền tố lptv.

🔒 Bảo mật: Shell sẽ tự động kết thúc phiên làm việc và đóng chương trình sau 1 phút kể từ lúc mở.

  • Cách dùng:lptv shell

2. lptv add (Thêm tài khoản/danh mục)

Thêm một tài khoản đăng nhập cho một dịch vụ. Chương trình sẽ nhắc bạn nhập các thông tin một cách bảo mật.

  • Thêm tài khoản:lptv add <tên_dịch_vụ>
  • Thêm danh mục mới:lptv add -c <tên_danh_mục> hoặc lptv add --category <tên_danh_mục>

3. lptv list hoặc lptv ls (Liệt kê tài khoản/danh mục)

Liệt kê danh sách các tài khoản hoặc danh mục hiện có.

  • Liệt kê tài khoản:lptv list hoặc lptv ls
  • Liệt kê theo danh mục:lptv list <tên_danh_mục> hoặc lptv ls <tên_danh_mục>
  • Liệt kê tất cả danh mục:lptv list -c hoặc lptv ls -c (hoặc dùng --category)

4. lptv get (Truy xuất mật khẩu & Copy nhanh)

Xem thông tin chi tiết tài khoản của một dịch vụ.

  • Xem mật khẩu ẩn (mặc định):lptv get <tên_dịch_vụ>
  • Hiện mật khẩu dạng text:lptv get <tên_dịch_vụ> --show
  • Sao chép nhanh: Chương trình sẽ hỏi bạn có muốn copy mật khẩu vào Clipboard hay không. Nếu đồng ý, mật khẩu sẽ tự động bị xóa khỏi bộ nhớ tạm sau 30 giây.

5. lptv search (Tìm kiếm tài khoản)

Tìm kiếm tài khoản dựa trên từ khóa khớp với tên dịch vụ, tên đăng nhập hoặc danh mục.

  • Cách dùng:lptv search <từ_khóa>

6. lptv generate hoặc lptv gen (Tạo mật khẩu mạnh)

Tự động sinh một chuỗi mật khẩu ngẫu nhiên, an toàn với độ dài và các bộ ký tự tùy biến.

  • Tạo mật khẩu 20 ký tự:lptv generate 20 hoặc lptv gen 20
  • Tùy chọn tạo mật khẩu:
    • -u, --no-upper: Loại bỏ chữ hoa.
    • -l, --no-lower: Loại bỏ chữ thường.
    • -d, --no-digits: Loại bỏ chữ số.
    • -s, --no-special: Loại bỏ ký tự đặc biệt.
    • Ví dụ:lptv gen 16 -s (tạo mật khẩu 16 ký tự không có ký tự đặc biệt).

📂 Cấu trúc thư mục dự án

.
├── include/ # Các tệp tiêu đề (.h)
│ ├── cli/ # Xử lý Console, Parser lệnh và Dispatcher
│ ├── core/ # Logic nghiệp vụ chính (PasswordManager, Session, Vault)
│ ├── storage/ # Đọc/Ghi dữ liệu dưới định dạng nhị phân bảo mật
│ └── utils/ # Các tiện ích (mã hóa, sinh số ngẫu nhiên, hằng số)
├── src/ # File mã nguồn (.cpp) tương ứng
├── external/ # Thư viện ngoài (SecureString cấp phát bộ nhớ an toàn)
└── CMakeLists.txt # File cấu hình build CMake

About

Một ứng dụng quản lý mật khẩu dòng lệnh (lptv)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - VuLeCoder/Password-manager-cli: Một ứng dụng quản lý mật khẩu dòng lệnh (lptv) · GitHub
Skip to content

Repository files navigation

LPTV Password Manager

Một ứng dụng quản lý mật khẩu dòng lệnh (CLI) hiệu năng cao, bảo mật và dễ sử dụng, được phát triển bằng C++17. LPTV giúp bạn lưu trữ và quản lý thông tin tài khoản cục bộ một cách an toàn.

🌟 Tính năng nổi bật

  • Bảo mật cao:
    • Argon2id: Thuật toán băm Master Password chống lại các cuộc tấn công brute-force phần cứng tối ưu nhất hiện nay.
    • AES-256-GCM: Mã hóa đối xứng đảm bảo cả tính bảo mật và tính toàn vẹn của dữ liệu.
  • Quản lý thông minh & linh hoạt:
    • Phân loại tài khoản theo danh mục (Category).
    • Tìm kiếm nhanh chóng theo tên dịch vụ, tên đăng nhập hoặc danh mục.
  • Trình tạo mật khẩu ngẫu nhiên: Hỗ trợ tạo mật khẩu mạnh với độ dài tùy chọn và tùy biến ký tự.
  • Interactive Shell tiện lợi: Chế độ dòng lệnh tương tác không cần gõ lại tiền tố lệnh, tự động đóng phiên (tự thoát chương trình) sau 1 phút để tránh rò rỉ dữ liệu khi người dùng rời đi.
  • Tự động xóa Clipboard: Sao chép mật khẩu vào bộ nhớ tạm thời và tự động xóa sau 30 giây để tránh việc phần mềm độc hại đọc trộm.
  • Lưu trữ nhị phân an toàn: Toàn bộ dữ liệu được lưu trữ dưới dạng nhị phân mã hóa trong thư mục ẩn .lptv/, đảm bảo không ai có thể đọc trộm file nếu không có Master Password.

🛠 Công nghệ sử dụng

  • Ngôn ngữ lập trình: C++17
  • Hệ điều hành tối ưu: Windows (Win32 API)
  • Công cụ Build: CMake (3.10+)
  • Thư viện bảo mật cốt lõi:
    • OpenSSL: Cung cấp giải thuật mã hóa AES-256-GCM và sinh số ngẫu nhiên bảo mật (CSPRNG).
    • Argon2: Hàm dẫn xuất khóa (KDF) mạnh mẽ bảo vệ Master Password.

🚀 Hướng dẫn Cài đặt & Biên dịch

Yêu cầu tiên quyết

Để build ứng dụng, máy tính của bạn cần cài đặt sẵn:

  1. Trình biên dịch hỗ trợ C++17 (ví dụ: MinGW-w64, GCC, hoặc Clang).
  2. CMake 3.10 trở lên.
  3. Thư viện libargon2OpenSSL.

Các bước Build dự án (trên Windows dùng MinGW)

Trước tiên, bạn cần clone thư viện secure-string vào thư mục external/Secure-string:

# Clone thư viện secure-string vào thư mục external
git clone "https://github.com/VuLeCoder/Secure-string" external/Secure-string

Sau đó, mở PowerShell/CMD tại thư mục dự án và chạy các lệnh sau để build:

# 1. Tạo và di chuyển vào thư mục build
mkdir build
cd build
# 2. Cấu hình dự án bằng CMake
cmake .. -G "MinGW Makefiles"# 3. Biên dịch mã nguồn
mingw32-make

Sau khi hoàn thành, file thực thi lptv.exe sẽ được tạo ra trong thư mục build. Bạn có thể thêm đường dẫn của file này vào biến môi trường PATH để gọi lệnh lptv từ bất kỳ đâu.

💡 Các lệnh nổi bật & Cách sử dụng

1. lptv shell (Interactive Shell - Khuyên dùng)

Vào chế độ shell tương tác giúp thực thi các lệnh tiếp theo cực nhanh mà không cần gõ tiền tố lptv.

🔒 Bảo mật: Shell sẽ tự động kết thúc phiên làm việc và đóng chương trình sau 1 phút kể từ lúc mở.

  • Cách dùng:lptv shell

2. lptv add (Thêm tài khoản/danh mục)

Thêm một tài khoản đăng nhập cho một dịch vụ. Chương trình sẽ nhắc bạn nhập các thông tin một cách bảo mật.

  • Thêm tài khoản:lptv add <tên_dịch_vụ>
  • Thêm danh mục mới:lptv add -c <tên_danh_mục> hoặc lptv add --category <tên_danh_mục>

3. lptv list hoặc lptv ls (Liệt kê tài khoản/danh mục)

Liệt kê danh sách các tài khoản hoặc danh mục hiện có.

  • Liệt kê tài khoản:lptv list hoặc lptv ls
  • Liệt kê theo danh mục:lptv list <tên_danh_mục> hoặc lptv ls <tên_danh_mục>
  • Liệt kê tất cả danh mục:lptv list -c hoặc lptv ls -c (hoặc dùng --category)

4. lptv get (Truy xuất mật khẩu & Copy nhanh)

Xem thông tin chi tiết tài khoản của một dịch vụ.

  • Xem mật khẩu ẩn (mặc định):lptv get <tên_dịch_vụ>
  • Hiện mật khẩu dạng text:lptv get <tên_dịch_vụ> --show
  • Sao chép nhanh: Chương trình sẽ hỏi bạn có muốn copy mật khẩu vào Clipboard hay không. Nếu đồng ý, mật khẩu sẽ tự động bị xóa khỏi bộ nhớ tạm sau 30 giây.

5. lptv search (Tìm kiếm tài khoản)

Tìm kiếm tài khoản dựa trên từ khóa khớp với tên dịch vụ, tên đăng nhập hoặc danh mục.

  • Cách dùng:lptv search <từ_khóa>

6. lptv generate hoặc lptv gen (Tạo mật khẩu mạnh)

Tự động sinh một chuỗi mật khẩu ngẫu nhiên, an toàn với độ dài và các bộ ký tự tùy biến.

  • Tạo mật khẩu 20 ký tự:lptv generate 20 hoặc lptv gen 20
  • Tùy chọn tạo mật khẩu:
    • -u, --no-upper: Loại bỏ chữ hoa.
    • -l, --no-lower: Loại bỏ chữ thường.
    • -d, --no-digits: Loại bỏ chữ số.
    • -s, --no-special: Loại bỏ ký tự đặc biệt.
    • Ví dụ:lptv gen 16 -s (tạo mật khẩu 16 ký tự không có ký tự đặc biệt).

📂 Cấu trúc thư mục dự án

.
├── include/ # Các tệp tiêu đề (.h)
│ ├── cli/ # Xử lý Console, Parser lệnh và Dispatcher
│ ├── core/ # Logic nghiệp vụ chính (PasswordManager, Session, Vault)
│ ├── storage/ # Đọc/Ghi dữ liệu dưới định dạng nhị phân bảo mật
│ └── utils/ # Các tiện ích (mã hóa, sinh số ngẫu nhiên, hằng số)
├── src/ # File mã nguồn (.cpp) tương ứng
├── external/ # Thư viện ngoài (SecureString cấp phát bộ nhớ an toàn)
└── CMakeLists.txt # File cấu hình build CMake

About

Một ứng dụng quản lý mật khẩu dòng lệnh (lptv)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - VuLeCoder/Password-manager-cli: Một ứng dụng quản lý mật khẩu dòng lệnh (lptv) · GitHub
Skip to content

Repository files navigation

LPTV Password Manager

Một ứng dụng quản lý mật khẩu dòng lệnh (CLI) hiệu năng cao, bảo mật và dễ sử dụng, được phát triển bằng C++17. LPTV giúp bạn lưu trữ và quản lý thông tin tài khoản cục bộ một cách an toàn.

🌟 Tính năng nổi bật

  • Bảo mật cao:
    • Argon2id: Thuật toán băm Master Password chống lại các cuộc tấn công brute-force phần cứng tối ưu nhất hiện nay.
    • AES-256-GCM: Mã hóa đối xứng đảm bảo cả tính bảo mật và tính toàn vẹn của dữ liệu.
  • Quản lý thông minh & linh hoạt:
    • Phân loại tài khoản theo danh mục (Category).
    • Tìm kiếm nhanh chóng theo tên dịch vụ, tên đăng nhập hoặc danh mục.
  • Trình tạo mật khẩu ngẫu nhiên: Hỗ trợ tạo mật khẩu mạnh với độ dài tùy chọn và tùy biến ký tự.
  • Interactive Shell tiện lợi: Chế độ dòng lệnh tương tác không cần gõ lại tiền tố lệnh, tự động đóng phiên (tự thoát chương trình) sau 1 phút để tránh rò rỉ dữ liệu khi người dùng rời đi.
  • Tự động xóa Clipboard: Sao chép mật khẩu vào bộ nhớ tạm thời và tự động xóa sau 30 giây để tránh việc phần mềm độc hại đọc trộm.
  • Lưu trữ nhị phân an toàn: Toàn bộ dữ liệu được lưu trữ dưới dạng nhị phân mã hóa trong thư mục ẩn .lptv/, đảm bảo không ai có thể đọc trộm file nếu không có Master Password.

🛠 Công nghệ sử dụng

  • Ngôn ngữ lập trình: C++17
  • Hệ điều hành tối ưu: Windows (Win32 API)
  • Công cụ Build: CMake (3.10+)
  • Thư viện bảo mật cốt lõi:
    • OpenSSL: Cung cấp giải thuật mã hóa AES-256-GCM và sinh số ngẫu nhiên bảo mật (CSPRNG).
    • Argon2: Hàm dẫn xuất khóa (KDF) mạnh mẽ bảo vệ Master Password.

🚀 Hướng dẫn Cài đặt & Biên dịch

Yêu cầu tiên quyết

Để build ứng dụng, máy tính của bạn cần cài đặt sẵn:

  1. Trình biên dịch hỗ trợ C++17 (ví dụ: MinGW-w64, GCC, hoặc Clang).
  2. CMake 3.10 trở lên.
  3. Thư viện libargon2OpenSSL.

Các bước Build dự án (trên Windows dùng MinGW)

Trước tiên, bạn cần clone thư viện secure-string vào thư mục external/Secure-string:

# Clone thư viện secure-string vào thư mục external
git clone "https://github.com/VuLeCoder/Secure-string" external/Secure-string

Sau đó, mở PowerShell/CMD tại thư mục dự án và chạy các lệnh sau để build:

# 1. Tạo và di chuyển vào thư mục build
mkdir build
cd build
# 2. Cấu hình dự án bằng CMake
cmake .. -G "MinGW Makefiles"# 3. Biên dịch mã nguồn
mingw32-make

Sau khi hoàn thành, file thực thi lptv.exe sẽ được tạo ra trong thư mục build. Bạn có thể thêm đường dẫn của file này vào biến môi trường PATH để gọi lệnh lptv từ bất kỳ đâu.

💡 Các lệnh nổi bật & Cách sử dụng

1. lptv shell (Interactive Shell - Khuyên dùng)

Vào chế độ shell tương tác giúp thực thi các lệnh tiếp theo cực nhanh mà không cần gõ tiền tố lptv.

🔒 Bảo mật: Shell sẽ tự động kết thúc phiên làm việc và đóng chương trình sau 1 phút kể từ lúc mở.

  • Cách dùng:lptv shell

2. lptv add (Thêm tài khoản/danh mục)

Thêm một tài khoản đăng nhập cho một dịch vụ. Chương trình sẽ nhắc bạn nhập các thông tin một cách bảo mật.

  • Thêm tài khoản:lptv add <tên_dịch_vụ>
  • Thêm danh mục mới:lptv add -c <tên_danh_mục> hoặc lptv add --category <tên_danh_mục>

3. lptv list hoặc lptv ls (Liệt kê tài khoản/danh mục)

Liệt kê danh sách các tài khoản hoặc danh mục hiện có.

  • Liệt kê tài khoản:lptv list hoặc lptv ls
  • Liệt kê theo danh mục:lptv list <tên_danh_mục> hoặc lptv ls <tên_danh_mục>
  • Liệt kê tất cả danh mục:lptv list -c hoặc lptv ls -c (hoặc dùng --category)

4. lptv get (Truy xuất mật khẩu & Copy nhanh)

Xem thông tin chi tiết tài khoản của một dịch vụ.

  • Xem mật khẩu ẩn (mặc định):lptv get <tên_dịch_vụ>
  • Hiện mật khẩu dạng text:lptv get <tên_dịch_vụ> --show
  • Sao chép nhanh: Chương trình sẽ hỏi bạn có muốn copy mật khẩu vào Clipboard hay không. Nếu đồng ý, mật khẩu sẽ tự động bị xóa khỏi bộ nhớ tạm sau 30 giây.

5. lptv search (Tìm kiếm tài khoản)

Tìm kiếm tài khoản dựa trên từ khóa khớp với tên dịch vụ, tên đăng nhập hoặc danh mục.

  • Cách dùng:lptv search <từ_khóa>

6. lptv generate hoặc lptv gen (Tạo mật khẩu mạnh)

Tự động sinh một chuỗi mật khẩu ngẫu nhiên, an toàn với độ dài và các bộ ký tự tùy biến.

  • Tạo mật khẩu 20 ký tự:lptv generate 20 hoặc lptv gen 20
  • Tùy chọn tạo mật khẩu:
    • -u, --no-upper: Loại bỏ chữ hoa.
    • -l, --no-lower: Loại bỏ chữ thường.
    • -d, --no-digits: Loại bỏ chữ số.
    • -s, --no-special: Loại bỏ ký tự đặc biệt.
    • Ví dụ:lptv gen 16 -s (tạo mật khẩu 16 ký tự không có ký tự đặc biệt).

📂 Cấu trúc thư mục dự án

.
├── include/ # Các tệp tiêu đề (.h)
│ ├── cli/ # Xử lý Console, Parser lệnh và Dispatcher
│ ├── core/ # Logic nghiệp vụ chính (PasswordManager, Session, Vault)
│ ├── storage/ # Đọc/Ghi dữ liệu dưới định dạng nhị phân bảo mật
│ └── utils/ # Các tiện ích (mã hóa, sinh số ngẫu nhiên, hằng số)
├── src/ # File mã nguồn (.cpp) tương ứng
├── external/ # Thư viện ngoài (SecureString cấp phát bộ nhớ an toàn)
└── CMakeLists.txt # File cấu hình build CMake

About

Một ứng dụng quản lý mật khẩu dòng lệnh (lptv)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - VuLeCoder/Password-manager-cli: Một ứng dụng quản lý mật khẩu dòng lệnh (lptv) · GitHub
Skip to content

Repository files navigation

LPTV Password Manager

Một ứng dụng quản lý mật khẩu dòng lệnh (CLI) hiệu năng cao, bảo mật và dễ sử dụng, được phát triển bằng C++17. LPTV giúp bạn lưu trữ và quản lý thông tin tài khoản cục bộ một cách an toàn.

🌟 Tính năng nổi bật

  • Bảo mật cao:
    • Argon2id: Thuật toán băm Master Password chống lại các cuộc tấn công brute-force phần cứng tối ưu nhất hiện nay.
    • AES-256-GCM: Mã hóa đối xứng đảm bảo cả tính bảo mật và tính toàn vẹn của dữ liệu.
  • Quản lý thông minh & linh hoạt:
    • Phân loại tài khoản theo danh mục (Category).
    • Tìm kiếm nhanh chóng theo tên dịch vụ, tên đăng nhập hoặc danh mục.
  • Trình tạo mật khẩu ngẫu nhiên: Hỗ trợ tạo mật khẩu mạnh với độ dài tùy chọn và tùy biến ký tự.
  • Interactive Shell tiện lợi: Chế độ dòng lệnh tương tác không cần gõ lại tiền tố lệnh, tự động đóng phiên (tự thoát chương trình) sau 1 phút để tránh rò rỉ dữ liệu khi người dùng rời đi.
  • Tự động xóa Clipboard: Sao chép mật khẩu vào bộ nhớ tạm thời và tự động xóa sau 30 giây để tránh việc phần mềm độc hại đọc trộm.
  • Lưu trữ nhị phân an toàn: Toàn bộ dữ liệu được lưu trữ dưới dạng nhị phân mã hóa trong thư mục ẩn .lptv/, đảm bảo không ai có thể đọc trộm file nếu không có Master Password.

🛠 Công nghệ sử dụng

  • Ngôn ngữ lập trình: C++17
  • Hệ điều hành tối ưu: Windows (Win32 API)
  • Công cụ Build: CMake (3.10+)
  • Thư viện bảo mật cốt lõi:
    • OpenSSL: Cung cấp giải thuật mã hóa AES-256-GCM và sinh số ngẫu nhiên bảo mật (CSPRNG).
    • Argon2: Hàm dẫn xuất khóa (KDF) mạnh mẽ bảo vệ Master Password.

🚀 Hướng dẫn Cài đặt & Biên dịch

Yêu cầu tiên quyết

Để build ứng dụng, máy tính của bạn cần cài đặt sẵn:

  1. Trình biên dịch hỗ trợ C++17 (ví dụ: MinGW-w64, GCC, hoặc Clang).
  2. CMake 3.10 trở lên.
  3. Thư viện libargon2OpenSSL.

Các bước Build dự án (trên Windows dùng MinGW)

Trước tiên, bạn cần clone thư viện secure-string vào thư mục external/Secure-string:

# Clone thư viện secure-string vào thư mục external
git clone "https://github.com/VuLeCoder/Secure-string" external/Secure-string

Sau đó, mở PowerShell/CMD tại thư mục dự án và chạy các lệnh sau để build:

# 1. Tạo và di chuyển vào thư mục build
mkdir build
cd build
# 2. Cấu hình dự án bằng CMake
cmake .. -G "MinGW Makefiles"# 3. Biên dịch mã nguồn
mingw32-make

Sau khi hoàn thành, file thực thi lptv.exe sẽ được tạo ra trong thư mục build. Bạn có thể thêm đường dẫn của file này vào biến môi trường PATH để gọi lệnh lptv từ bất kỳ đâu.

💡 Các lệnh nổi bật & Cách sử dụng

1. lptv shell (Interactive Shell - Khuyên dùng)

Vào chế độ shell tương tác giúp thực thi các lệnh tiếp theo cực nhanh mà không cần gõ tiền tố lptv.

🔒 Bảo mật: Shell sẽ tự động kết thúc phiên làm việc và đóng chương trình sau 1 phút kể từ lúc mở.

  • Cách dùng:lptv shell

2. lptv add (Thêm tài khoản/danh mục)

Thêm một tài khoản đăng nhập cho một dịch vụ. Chương trình sẽ nhắc bạn nhập các thông tin một cách bảo mật.

  • Thêm tài khoản:lptv add <tên_dịch_vụ>
  • Thêm danh mục mới:lptv add -c <tên_danh_mục> hoặc lptv add --category <tên_danh_mục>

3. lptv list hoặc lptv ls (Liệt kê tài khoản/danh mục)

Liệt kê danh sách các tài khoản hoặc danh mục hiện có.

  • Liệt kê tài khoản:lptv list hoặc lptv ls
  • Liệt kê theo danh mục:lptv list <tên_danh_mục> hoặc lptv ls <tên_danh_mục>
  • Liệt kê tất cả danh mục:lptv list -c hoặc lptv ls -c (hoặc dùng --category)

4. lptv get (Truy xuất mật khẩu & Copy nhanh)

Xem thông tin chi tiết tài khoản của một dịch vụ.

  • Xem mật khẩu ẩn (mặc định):lptv get <tên_dịch_vụ>
  • Hiện mật khẩu dạng text:lptv get <tên_dịch_vụ> --show
  • Sao chép nhanh: Chương trình sẽ hỏi bạn có muốn copy mật khẩu vào Clipboard hay không. Nếu đồng ý, mật khẩu sẽ tự động bị xóa khỏi bộ nhớ tạm sau 30 giây.

5. lptv search (Tìm kiếm tài khoản)

Tìm kiếm tài khoản dựa trên từ khóa khớp với tên dịch vụ, tên đăng nhập hoặc danh mục.

  • Cách dùng:lptv search <từ_khóa>

6. lptv generate hoặc lptv gen (Tạo mật khẩu mạnh)

Tự động sinh một chuỗi mật khẩu ngẫu nhiên, an toàn với độ dài và các bộ ký tự tùy biến.

  • Tạo mật khẩu 20 ký tự:lptv generate 20 hoặc lptv gen 20
  • Tùy chọn tạo mật khẩu:
    • -u, --no-upper: Loại bỏ chữ hoa.
    • -l, --no-lower: Loại bỏ chữ thường.
    • -d, --no-digits: Loại bỏ chữ số.
    • -s, --no-special: Loại bỏ ký tự đặc biệt.
    • Ví dụ:lptv gen 16 -s (tạo mật khẩu 16 ký tự không có ký tự đặc biệt).

📂 Cấu trúc thư mục dự án

.
├── include/ # Các tệp tiêu đề (.h)
│ ├── cli/ # Xử lý Console, Parser lệnh và Dispatcher
│ ├── core/ # Logic nghiệp vụ chính (PasswordManager, Session, Vault)
│ ├── storage/ # Đọc/Ghi dữ liệu dưới định dạng nhị phân bảo mật
│ └── utils/ # Các tiện ích (mã hóa, sinh số ngẫu nhiên, hằng số)
├── src/ # File mã nguồn (.cpp) tương ứng
├── external/ # Thư viện ngoài (SecureString cấp phát bộ nhớ an toàn)
└── CMakeLists.txt # File cấu hình build CMake

About

Một ứng dụng quản lý mật khẩu dòng lệnh (lptv)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - VuLeCoder/Password-manager-cli: Một ứng dụng quản lý mật khẩu dòng lệnh (lptv) · GitHub
Skip to content

Repository files navigation

LPTV Password Manager

Một ứng dụng quản lý mật khẩu dòng lệnh (CLI) hiệu năng cao, bảo mật và dễ sử dụng, được phát triển bằng C++17. LPTV giúp bạn lưu trữ và quản lý thông tin tài khoản cục bộ một cách an toàn.

🌟 Tính năng nổi bật

  • Bảo mật cao:
    • Argon2id: Thuật toán băm Master Password chống lại các cuộc tấn công brute-force phần cứng tối ưu nhất hiện nay.
    • AES-256-GCM: Mã hóa đối xứng đảm bảo cả tính bảo mật và tính toàn vẹn của dữ liệu.
  • Quản lý thông minh & linh hoạt:
    • Phân loại tài khoản theo danh mục (Category).
    • Tìm kiếm nhanh chóng theo tên dịch vụ, tên đăng nhập hoặc danh mục.
  • Trình tạo mật khẩu ngẫu nhiên: Hỗ trợ tạo mật khẩu mạnh với độ dài tùy chọn và tùy biến ký tự.
  • Interactive Shell tiện lợi: Chế độ dòng lệnh tương tác không cần gõ lại tiền tố lệnh, tự động đóng phiên (tự thoát chương trình) sau 1 phút để tránh rò rỉ dữ liệu khi người dùng rời đi.
  • Tự động xóa Clipboard: Sao chép mật khẩu vào bộ nhớ tạm thời và tự động xóa sau 30 giây để tránh việc phần mềm độc hại đọc trộm.
  • Lưu trữ nhị phân an toàn: Toàn bộ dữ liệu được lưu trữ dưới dạng nhị phân mã hóa trong thư mục ẩn .lptv/, đảm bảo không ai có thể đọc trộm file nếu không có Master Password.

🛠 Công nghệ sử dụng

  • Ngôn ngữ lập trình: C++17
  • Hệ điều hành tối ưu: Windows (Win32 API)
  • Công cụ Build: CMake (3.10+)
  • Thư viện bảo mật cốt lõi:
    • OpenSSL: Cung cấp giải thuật mã hóa AES-256-GCM và sinh số ngẫu nhiên bảo mật (CSPRNG).
    • Argon2: Hàm dẫn xuất khóa (KDF) mạnh mẽ bảo vệ Master Password.

🚀 Hướng dẫn Cài đặt & Biên dịch

Yêu cầu tiên quyết

Để build ứng dụng, máy tính của bạn cần cài đặt sẵn:

  1. Trình biên dịch hỗ trợ C++17 (ví dụ: MinGW-w64, GCC, hoặc Clang).
  2. CMake 3.10 trở lên.
  3. Thư viện libargon2OpenSSL.

Các bước Build dự án (trên Windows dùng MinGW)

Trước tiên, bạn cần clone thư viện secure-string vào thư mục external/Secure-string:

# Clone thư viện secure-string vào thư mục external
git clone "https://github.com/VuLeCoder/Secure-string" external/Secure-string

Sau đó, mở PowerShell/CMD tại thư mục dự án và chạy các lệnh sau để build:

# 1. Tạo và di chuyển vào thư mục build
mkdir build
cd build
# 2. Cấu hình dự án bằng CMake
cmake .. -G "MinGW Makefiles"# 3. Biên dịch mã nguồn
mingw32-make

Sau khi hoàn thành, file thực thi lptv.exe sẽ được tạo ra trong thư mục build. Bạn có thể thêm đường dẫn của file này vào biến môi trường PATH để gọi lệnh lptv từ bất kỳ đâu.

💡 Các lệnh nổi bật & Cách sử dụng

1. lptv shell (Interactive Shell - Khuyên dùng)

Vào chế độ shell tương tác giúp thực thi các lệnh tiếp theo cực nhanh mà không cần gõ tiền tố lptv.

🔒 Bảo mật: Shell sẽ tự động kết thúc phiên làm việc và đóng chương trình sau 1 phút kể từ lúc mở.

  • Cách dùng:lptv shell

2. lptv add (Thêm tài khoản/danh mục)

Thêm một tài khoản đăng nhập cho một dịch vụ. Chương trình sẽ nhắc bạn nhập các thông tin một cách bảo mật.

  • Thêm tài khoản:lptv add <tên_dịch_vụ>
  • Thêm danh mục mới:lptv add -c <tên_danh_mục> hoặc lptv add --category <tên_danh_mục>

3. lptv list hoặc lptv ls (Liệt kê tài khoản/danh mục)

Liệt kê danh sách các tài khoản hoặc danh mục hiện có.

  • Liệt kê tài khoản:lptv list hoặc lptv ls
  • Liệt kê theo danh mục:lptv list <tên_danh_mục> hoặc lptv ls <tên_danh_mục>
  • Liệt kê tất cả danh mục:lptv list -c hoặc lptv ls -c (hoặc dùng --category)

4. lptv get (Truy xuất mật khẩu & Copy nhanh)

Xem thông tin chi tiết tài khoản của một dịch vụ.

  • Xem mật khẩu ẩn (mặc định):lptv get <tên_dịch_vụ>
  • Hiện mật khẩu dạng text:lptv get <tên_dịch_vụ> --show
  • Sao chép nhanh: Chương trình sẽ hỏi bạn có muốn copy mật khẩu vào Clipboard hay không. Nếu đồng ý, mật khẩu sẽ tự động bị xóa khỏi bộ nhớ tạm sau 30 giây.

5. lptv search (Tìm kiếm tài khoản)

Tìm kiếm tài khoản dựa trên từ khóa khớp với tên dịch vụ, tên đăng nhập hoặc danh mục.

  • Cách dùng:lptv search <từ_khóa>

6. lptv generate hoặc lptv gen (Tạo mật khẩu mạnh)

Tự động sinh một chuỗi mật khẩu ngẫu nhiên, an toàn với độ dài và các bộ ký tự tùy biến.

  • Tạo mật khẩu 20 ký tự:lptv generate 20 hoặc lptv gen 20
  • Tùy chọn tạo mật khẩu:
    • -u, --no-upper: Loại bỏ chữ hoa.
    • -l, --no-lower: Loại bỏ chữ thường.
    • -d, --no-digits: Loại bỏ chữ số.
    • -s, --no-special: Loại bỏ ký tự đặc biệt.
    • Ví dụ:lptv gen 16 -s (tạo mật khẩu 16 ký tự không có ký tự đặc biệt).

📂 Cấu trúc thư mục dự án

.
├── include/ # Các tệp tiêu đề (.h)
│ ├── cli/ # Xử lý Console, Parser lệnh và Dispatcher
│ ├── core/ # Logic nghiệp vụ chính (PasswordManager, Session, Vault)
│ ├── storage/ # Đọc/Ghi dữ liệu dưới định dạng nhị phân bảo mật
│ └── utils/ # Các tiện ích (mã hóa, sinh số ngẫu nhiên, hằng số)
├── src/ # File mã nguồn (.cpp) tương ứng
├── external/ # Thư viện ngoài (SecureString cấp phát bộ nhớ an toàn)
└── CMakeLists.txt # File cấu hình build CMake

About

Một ứng dụng quản lý mật khẩu dòng lệnh (lptv)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - VuLeCoder/Password-manager-cli: Một ứng dụng quản lý mật khẩu dòng lệnh (lptv) · GitHub
Skip to content

Repository files navigation

LPTV Password Manager

Một ứng dụng quản lý mật khẩu dòng lệnh (CLI) hiệu năng cao, bảo mật và dễ sử dụng, được phát triển bằng C++17. LPTV giúp bạn lưu trữ và quản lý thông tin tài khoản cục bộ một cách an toàn.

🌟 Tính năng nổi bật

  • Bảo mật cao:
    • Argon2id: Thuật toán băm Master Password chống lại các cuộc tấn công brute-force phần cứng tối ưu nhất hiện nay.
    • AES-256-GCM: Mã hóa đối xứng đảm bảo cả tính bảo mật và tính toàn vẹn của dữ liệu.
  • Quản lý thông minh & linh hoạt:
    • Phân loại tài khoản theo danh mục (Category).
    • Tìm kiếm nhanh chóng theo tên dịch vụ, tên đăng nhập hoặc danh mục.
  • Trình tạo mật khẩu ngẫu nhiên: Hỗ trợ tạo mật khẩu mạnh với độ dài tùy chọn và tùy biến ký tự.
  • Interactive Shell tiện lợi: Chế độ dòng lệnh tương tác không cần gõ lại tiền tố lệnh, tự động đóng phiên (tự thoát chương trình) sau 1 phút để tránh rò rỉ dữ liệu khi người dùng rời đi.
  • Tự động xóa Clipboard: Sao chép mật khẩu vào bộ nhớ tạm thời và tự động xóa sau 30 giây để tránh việc phần mềm độc hại đọc trộm.
  • Lưu trữ nhị phân an toàn: Toàn bộ dữ liệu được lưu trữ dưới dạng nhị phân mã hóa trong thư mục ẩn .lptv/, đảm bảo không ai có thể đọc trộm file nếu không có Master Password.

🛠 Công nghệ sử dụng

  • Ngôn ngữ lập trình: C++17
  • Hệ điều hành tối ưu: Windows (Win32 API)
  • Công cụ Build: CMake (3.10+)
  • Thư viện bảo mật cốt lõi:
    • OpenSSL: Cung cấp giải thuật mã hóa AES-256-GCM và sinh số ngẫu nhiên bảo mật (CSPRNG).
    • Argon2: Hàm dẫn xuất khóa (KDF) mạnh mẽ bảo vệ Master Password.

🚀 Hướng dẫn Cài đặt & Biên dịch

Yêu cầu tiên quyết

Để build ứng dụng, máy tính của bạn cần cài đặt sẵn:

  1. Trình biên dịch hỗ trợ C++17 (ví dụ: MinGW-w64, GCC, hoặc Clang).
  2. CMake 3.10 trở lên.
  3. Thư viện libargon2OpenSSL.

Các bước Build dự án (trên Windows dùng MinGW)

Trước tiên, bạn cần clone thư viện secure-string vào thư mục external/Secure-string:

# Clone thư viện secure-string vào thư mục external
git clone "https://github.com/VuLeCoder/Secure-string" external/Secure-string

Sau đó, mở PowerShell/CMD tại thư mục dự án và chạy các lệnh sau để build:

# 1. Tạo và di chuyển vào thư mục build
mkdir build
cd build
# 2. Cấu hình dự án bằng CMake
cmake .. -G "MinGW Makefiles"# 3. Biên dịch mã nguồn
mingw32-make

Sau khi hoàn thành, file thực thi lptv.exe sẽ được tạo ra trong thư mục build. Bạn có thể thêm đường dẫn của file này vào biến môi trường PATH để gọi lệnh lptv từ bất kỳ đâu.

💡 Các lệnh nổi bật & Cách sử dụng

1. lptv shell (Interactive Shell - Khuyên dùng)

Vào chế độ shell tương tác giúp thực thi các lệnh tiếp theo cực nhanh mà không cần gõ tiền tố lptv.

🔒 Bảo mật: Shell sẽ tự động kết thúc phiên làm việc và đóng chương trình sau 1 phút kể từ lúc mở.

  • Cách dùng:lptv shell

2. lptv add (Thêm tài khoản/danh mục)

Thêm một tài khoản đăng nhập cho một dịch vụ. Chương trình sẽ nhắc bạn nhập các thông tin một cách bảo mật.

  • Thêm tài khoản:lptv add <tên_dịch_vụ>
  • Thêm danh mục mới:lptv add -c <tên_danh_mục> hoặc lptv add --category <tên_danh_mục>

3. lptv list hoặc lptv ls (Liệt kê tài khoản/danh mục)

Liệt kê danh sách các tài khoản hoặc danh mục hiện có.

  • Liệt kê tài khoản:lptv list hoặc lptv ls
  • Liệt kê theo danh mục:lptv list <tên_danh_mục> hoặc lptv ls <tên_danh_mục>
  • Liệt kê tất cả danh mục:lptv list -c hoặc lptv ls -c (hoặc dùng --category)

4. lptv get (Truy xuất mật khẩu & Copy nhanh)

Xem thông tin chi tiết tài khoản của một dịch vụ.

  • Xem mật khẩu ẩn (mặc định):lptv get <tên_dịch_vụ>
  • Hiện mật khẩu dạng text:lptv get <tên_dịch_vụ> --show
  • Sao chép nhanh: Chương trình sẽ hỏi bạn có muốn copy mật khẩu vào Clipboard hay không. Nếu đồng ý, mật khẩu sẽ tự động bị xóa khỏi bộ nhớ tạm sau 30 giây.

5. lptv search (Tìm kiếm tài khoản)

Tìm kiếm tài khoản dựa trên từ khóa khớp với tên dịch vụ, tên đăng nhập hoặc danh mục.

  • Cách dùng:lptv search <từ_khóa>

6. lptv generate hoặc lptv gen (Tạo mật khẩu mạnh)

Tự động sinh một chuỗi mật khẩu ngẫu nhiên, an toàn với độ dài và các bộ ký tự tùy biến.

  • Tạo mật khẩu 20 ký tự:lptv generate 20 hoặc lptv gen 20
  • Tùy chọn tạo mật khẩu:
    • -u, --no-upper: Loại bỏ chữ hoa.
    • -l, --no-lower: Loại bỏ chữ thường.
    • -d, --no-digits: Loại bỏ chữ số.
    • -s, --no-special: Loại bỏ ký tự đặc biệt.
    • Ví dụ:lptv gen 16 -s (tạo mật khẩu 16 ký tự không có ký tự đặc biệt).

📂 Cấu trúc thư mục dự án

.
├── include/ # Các tệp tiêu đề (.h)
│ ├── cli/ # Xử lý Console, Parser lệnh và Dispatcher
│ ├── core/ # Logic nghiệp vụ chính (PasswordManager, Session, Vault)
│ ├── storage/ # Đọc/Ghi dữ liệu dưới định dạng nhị phân bảo mật
│ └── utils/ # Các tiện ích (mã hóa, sinh số ngẫu nhiên, hằng số)
├── src/ # File mã nguồn (.cpp) tương ứng
├── external/ # Thư viện ngoài (SecureString cấp phát bộ nhớ an toàn)
└── CMakeLists.txt # File cấu hình build CMake

About

Một ứng dụng quản lý mật khẩu dòng lệnh (lptv)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages