Add encrypt and decrypt data in file

This commit is contained in:
Archer Fox
2025-03-20 23:12:55 +03:00
parent 7536f12aa7
commit 8d87af5008
2 changed files with 16 additions and 11 deletions

View File

@@ -6,6 +6,8 @@ import (
"password/output" "password/output"
"strings" "strings"
"time" "time"
"github.com/fatih/color"
) )
type ByteReader interface { type ByteReader interface {
@@ -45,8 +47,10 @@ func NewVault(db Db, enc encrypter.Encrypter) *VaultWithDb {
enc: enc, enc: enc,
} }
} }
data := enc.Decrypt(file)
var vault Vault var vault Vault
err = json.Unmarshal(file, &vault) err = json.Unmarshal(data, &vault)
color.Cyan("Найдено аккаунтов - %d", len(vault.Accounts))
if err != nil { if err != nil {
output.PrintError("Не удалось разобрать файл data.json") output.PrintError("Не удалось разобрать файл data.json")
return &VaultWithDb{ return &VaultWithDb{
@@ -108,8 +112,9 @@ func (vault *VaultWithDb) DeleteAccountByUrl(url string) bool {
func (vault *VaultWithDb) save() { func (vault *VaultWithDb) save() {
vault.UpdatedAt = time.Now() vault.UpdatedAt = time.Now()
data, err := vault.Vault.ToBytes() data, err := vault.Vault.ToBytes()
encData := vault.enc.Encrypt(data)
if err != nil { if err != nil {
output.PrintError("Не удалось преобразовать") output.PrintError("Не удалось преобразовать")
} }
vault.db.Write(data) vault.db.Write(encData)
} }

View File

@@ -28,13 +28,13 @@ var menuVariants = []string{
"Выберите вариант", "Выберите вариант",
} }
func menuCounter() func() { // func menuCounter() func() {
i := 0 // i := 0
return func() { // return func() {
i++ // i++
fmt.Println("Вызов:", i) // fmt.Println("Вызов:", i)
} // }
} // }
func main() { func main() {
color.Blue("__Менеджер паролей__") color.Blue("__Менеджер паролей__")
@@ -44,10 +44,10 @@ func main() {
output.PrintError("Не удалось найти файл .env") output.PrintError("Не удалось найти файл .env")
} }
vault := account.NewVault(files.NewJsonDb("data.vault"), *encrypter.NewEncrypter()) vault := account.NewVault(files.NewJsonDb("data.vault"), *encrypter.NewEncrypter())
counter := menuCounter() // counter := menuCounter()
Menu: Menu:
for { for {
counter() // counter()
variant := PromptData(menuVariants...) variant := PromptData(menuVariants...)
menuFunc := menu[variant] menuFunc := menu[variant]
if menuFunc == nil { if menuFunc == nil {