从c#将敏感信息存储在keepass数据库中

hot*_*ips 15 c# security keepass

我有一个项目,我必须处理敏感数据.你知道如何打开一个keepass数据库表单c#来使用数据吗?

我已经下载了这些来源.我会看看它得到我需要的东西.还有其他想法吗?

Ron*_*rby 35

我考虑过读一个KeyPass 2数据库,所以我在Linqpad中添加了对KeyPass.exe的引用并开始进行实验.令我惊讶的是,没有任何外界帮助(证明了一个好的API),我只在几分钟后就读了数据库.我是这样做的:

var dbpath = @"C:\path\to\passwords.kdbx";
var masterpw = "Your$uper$tr0ngMst3rP@ssw0rd";

var ioConnInfo = new IOConnectionInfo { Path = dbpath };
var compKey = new CompositeKey();
compKey.AddUserKey(new KcpPassword(masterpw));

var db = new KeePassLib.PwDatabase();
db.Open(ioConnInfo, compKey, null);

var kpdata = from entry in db.RootGroup.GetEntries(true)
                select new
                {
                    Group = entry.ParentGroup.Name,
                    Title = entry.Strings.ReadSafe("Title"),
                    Username = entry.Strings.ReadSafe("UserName"),
                    Password = entry.Strings.ReadSafe("Password"),
                    URL = entry.Strings.ReadSafe("URL"),
                    Notes = entry.Strings.ReadSafe("Notes")

                };                                                                                  

kpdata.Dump(); // this is how Linqpad outputs stuff
db.Close();
Run Code Online (Sandbox Code Playgroud)

  • **提示:** 您可以通过 **File** 菜单中的 **Password manager** 菜单项让 LinqPad 将主密码存储在演示代码中,然后通过 `var masterpw = Util.GetPassword(" 检索它) KeePassMaster");` 如[此处](http://stackoverflow.com/a/12006038/1016343) 更详细所述。这样,它就可以使用 CryptoAPI 进行存储,您可以安全地泄露演示代码,而无需担心删除密码。 (2认同)