Я использую Диспетчер учетных данных Windows для хранения учетных данных базы данных для моего приложения, встроенного в Go с помощью wincred пакета .
Он работает для получения паролей для учетных данных, созданных самим пакетом, однако для учетных данных, созданных непосредственно с помощью диспетчера учетных данных Windows, пакет добавляет «пробелы» (байт '0') между символами при преобразовании байта [] в строку .
//Retrieve a credential object
package main
import (
"fmt"
"github.com/danieljoos/wincred"
)
func main() {
cred, err := wincred.GetGenericCredential("myGoApplication")
if err == nil {
fmt.Println(string(cred.CredentialBlob))
}
}
В приведенном выше примере я установил пароль для «myGoApplication» как 123456, но он восстанавливается как
1 2 3 4 5 6
Представление байта []:
[49 0 50 0 51 0 52 0 53 0 54 0]
Мне интересно, есть ли у кого-нибудь представление о том, что может быть причиной этой проблемы.