Skip to content

Latest commit

 

History

History
164 lines (99 loc) · 6.6 KB

README-en.md

File metadata and controls

164 lines (99 loc) · 6.6 KB

A password manager

· English · 中文

doc ref

https://blog.bytefuse.cn/feishu__2024_8_6_product_onepassword_3doc

https://ftyszyx.github.io/feishu-vitepress/feishu__2024_8_7_product_onepassword_4doc

background

In the Internet era, there are too many account passwords. The previous method was to save them in a notepad. But it lacks security and is inconvenient to search.

There are many password management tools on the market, but they all require servers. But I always feel uneasy if sensitive information like passwords is stored on someone else's server.

I thought that the basic function is just encrypted storage and search, which should not be difficult to implement, so I made one by referring to 1password.

At present, the function is not perfect, and I will continue to optimize it during use. You can also give it a try and give me any suggestions.

My goals are currently simple:

  1. Only for personal use, no sharing or collaboration is required.

  2. No server is required, only network disk backup and recovery functions are provided. Control your own data

Principle Introduction

  1. A dual password mechanism similar to 1password: master password (remembered by the user) + key (the software generates a random password with a length of 25)

  2. Confidential information uses the aes-256-cbc encryption algorithm. The key is sha256 (master password + key)

  3. The data is stored locally and uses sqlite database.

Function introduction

  1. Double password mechanism: Master password and 25-character key (generated by software) are combined into a super strong password 1.AES data encryption: Locally stored sensitive information is encrypted and stored through aes-256-cbc
  2. Multiple password information support: Storage of login information, bank card information, and note information
  3. Vault function: Save different password information in categories
  4. Multi-account function: The software can switch between different accounts (so you can isolate and save your parents' password information, because the master password of different accounts can be different)
  5. Random password generation tool: You no longer have to worry about passwords not being secure enough or meeting the needs of the website. Tool helps you randomly generate passwords on demand
  6. Automatic keyboard input: Use the shortcut keys to call up the password quick search window. After selecting it, the account password will be automatically entered.
  7. Multi-language support: Supports fast switching between Chinese and English
  8. Export and import of local backup files: You can save personal information into zip files and import this backup information at the same time.
  9. Cloud disk backup and recovery: You can save software data to the cloud disk or restore the corresponding backup from the cloud disk. (Currently only supports Alibaba Cloud disk)
  10. csv import and export: You can import the csv password file exported by chrome or edge browser into the software, and you can also export the password information of the software into csv.
  11. Change master password: You can easily change the master password (note the backup)
  12. Automatic program update: Support updating the latest version from github 1.Auto-start at boot
  13. The system is locked and the software is also locked

Demonstration effect

Vault

image

Add confidential information

image

Confidential Information Preview

image

Confidential Information Edit

image

User setting function

image

Password generation

image

tray tray

image

Automatic input

![image]image

csv import

image

csv export

image

Multiple accounts

image

Network disk backup and restore

image

Development Notes

Download Code

git clone https://github.com/ftyszyx/lockpass.git

Install dependencies

npm install

Run

npm rundev

Library used

Pack

electron-vite

electron-builder packaging

electron-builder github In fact, the packaging process is that electron vite first packages the script under main render preload into the out directory using vite, and then electron-build types the resources into asar.

Summary of problems encountered

todo

  1. Program update mechanism (completed) https://www.electron.build/auto-update The function of electron-builder is indeed powerful and it is well done. Like it.

  2. Linux packaging exception problem (completed) Snap packaging seems to require a signature file. For now, remove the snap.

snapcraft internal error: NoKeyringError('No keyring found to store or retrieve credentials from.')
  1. Do not delete the configuration file during overwriting installation (completed) Previously, for the convenience of development, the user files and configurations generated by the program were placed in the current directory of the application. But the current mainstream approach is to put these configuration files in the user directory divided by the system. Under windows it is %appdata% In this case, there will be no above problems, because the configuration and program storage locations are separated. And there will be no permission issues.

  2. Change master password (completed)

  3. Switch language (completed) Support English and Chinese

  4. Follow the system lock (completed)

  5. Auto-start at boot (completed)