From 8d87af5008c0149996c88daec8e562aa4c80ec88 Mon Sep 17 00:00:00 2001 From: Archer Fox Date: Thu, 20 Mar 2025 23:12:55 +0300 Subject: [PATCH] Add encrypt and decrypt data in file --- go-demo-4/account/vault.go | 9 +++++++-- go-demo-4/main.go | 18 +++++++++--------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/go-demo-4/account/vault.go b/go-demo-4/account/vault.go index f4e6ecb..376591b 100644 --- a/go-demo-4/account/vault.go +++ b/go-demo-4/account/vault.go @@ -6,6 +6,8 @@ import ( "password/output" "strings" "time" + + "github.com/fatih/color" ) type ByteReader interface { @@ -45,8 +47,10 @@ func NewVault(db Db, enc encrypter.Encrypter) *VaultWithDb { enc: enc, } } + data := enc.Decrypt(file) var vault Vault - err = json.Unmarshal(file, &vault) + err = json.Unmarshal(data, &vault) + color.Cyan("Найдено аккаунтов - %d", len(vault.Accounts)) if err != nil { output.PrintError("Не удалось разобрать файл data.json") return &VaultWithDb{ @@ -108,8 +112,9 @@ func (vault *VaultWithDb) DeleteAccountByUrl(url string) bool { func (vault *VaultWithDb) save() { vault.UpdatedAt = time.Now() data, err := vault.Vault.ToBytes() + encData := vault.enc.Encrypt(data) if err != nil { output.PrintError("Не удалось преобразовать") } - vault.db.Write(data) + vault.db.Write(encData) } diff --git a/go-demo-4/main.go b/go-demo-4/main.go index 9f75f62..f5a51b6 100644 --- a/go-demo-4/main.go +++ b/go-demo-4/main.go @@ -28,13 +28,13 @@ var menuVariants = []string{ "Выберите вариант", } -func menuCounter() func() { - i := 0 - return func() { - i++ - fmt.Println("Вызов:", i) - } -} +// func menuCounter() func() { +// i := 0 +// return func() { +// i++ +// fmt.Println("Вызов:", i) +// } +// } func main() { color.Blue("__Менеджер паролей__") @@ -44,10 +44,10 @@ func main() { output.PrintError("Не удалось найти файл .env") } vault := account.NewVault(files.NewJsonDb("data.vault"), *encrypter.NewEncrypter()) - counter := menuCounter() + // counter := menuCounter() Menu: for { - counter() + // counter() variant := PromptData(menuVariants...) menuFunc := menu[variant] if menuFunc == nil {