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