🎨 改进数据仓库 通过密码生成密钥 Fix https://github.com/siyuan-note/siyuan/issues/6782

This commit is contained in:
Liang Ding 2022-12-04 22:32:30 +08:00
parent d235b18462
commit ce17ca0264
No known key found for this signature in database
GPG key ID: 136F30F901A2231D

View file

@ -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()