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"
"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)
}

View File

@@ -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 {