Add encrypt and decrypt data in file
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user