mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-06 08:48:49 +01:00
🎨 改进数据仓库 通过密码生成密钥 Fix https://github.com/siyuan-note/siyuan/issues/6782
This commit is contained in:
parent
d235b18462
commit
ce17ca0264
1 changed files with 14 additions and 6 deletions
|
|
@ -145,7 +145,6 @@ func InitRepoKeyFromPassphrase(passphrase string) (err error) {
|
|||
}
|
||||
|
||||
util.PushMsg(Conf.Language(136), 3000)
|
||||
|
||||
if err = os.RemoveAll(Conf.Repo.GetSaveDir()); nil != err {
|
||||
return
|
||||
}
|
||||
|
|
@ -153,12 +152,21 @@ func InitRepoKeyFromPassphrase(passphrase string) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
salt := fmt.Sprintf("%x", sha256.Sum256([]byte(passphrase)))[:16]
|
||||
key, err := encryption.KDF(passphrase, salt)
|
||||
if nil != err {
|
||||
logging.LogErrorf("init data repo key failed: %s", err)
|
||||
return
|
||||
var key []byte
|
||||
base64Data, base64Err := base64.StdEncoding.DecodeString(passphrase)
|
||||
if nil == base64Err {
|
||||
// 改进数据仓库 `通过密码生成密钥` https://github.com/siyuan-note/siyuan/issues/6782
|
||||
logging.LogInfof("passphrase is base64 encoded, use it as key directly")
|
||||
key = base64Data
|
||||
} else {
|
||||
salt := fmt.Sprintf("%x", sha256.Sum256([]byte(passphrase)))[:16]
|
||||
key, err = encryption.KDF(passphrase, salt)
|
||||
if nil != err {
|
||||
logging.LogErrorf("init data repo key failed: %s", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
Conf.Repo.Key = key
|
||||
Conf.Save()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue