[译]KeePass密码安全
By robot-v1.0
本文链接 https://www.kyfws.com/applications/keepass-password-safe-2-zh/
版权声明 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
- 19 分钟阅读 - 9070 个词 阅读量 0[译]KeePass密码安全
原文地址:https://www.codeproject.com/Articles/5489/KeePass-Password-Safe-2
原文作者:Dominik Reichl
译文由本站 robot-v1.0 翻译
前言
KeePass is a free, open source, light-weight and easy-to-use password manager.
KeePass是一个免费,开源,轻便且易于使用的密码管理器.
- 下载KeePass 1.38可执行文件-1.52 MB(Download KeePass 1.38 executable - 1.52 MB)
- 下载KeePass 1.38源代码-1.85 MB(Download KeePass 1.38 source code - 1.85 MB)
- KeePass网站(KeePass website)
- 翻译(Translations) 注意:如果您喜欢这个项目,别忘了投票!(Note: if you like this project, don’t forget to vote for it!)
指数(Index)
- 介绍(Introduction)
- 第一步(First Steps)
- 特征(Features)
- 安全(Security)
- 内部构造(Internals)
- 常见问题解答(FAQ)(Frequently Asked Questions (FAQ))
- 致谢与致谢(Thanks and Acknowledgements)
- 一些最后的话(Some Final Words)
介绍(Introduction)
如今,您需要记住许多密码.您需要Windows网络登录密码,电子邮件帐户,网站的FTP密码,在线密码(例如CodeProject成员帐户)等等.列表是无止境的.另外,您应该为每个帐户使用不同的密码,因为如果您在任何地方都只使用一个密码,并且有人得到了该密码,那么您就会遇到问题…一个严重的问题.他将有权访问您的电子邮件帐户,网站等.(Nowadays you need to remember many passwords. You need a password for the Windows network logon, your e-mail account, your website’s FTP password, online passwords (like CodeProject member account), and so on. The list is endless. Also, you should use a different password for each account, because if you use only one password everywhere and someone gets this password, you have a problem… A serious problem. He would have access to your e-mail account, website, etc. Unimaginable.)
但是谁能记住所有这些密码?没有人,但是KeePass可以. KeePass是一个免费,开源,轻便且易于使用的密码管理器.使用此工具,您只需要记住一个单一的强主密码和/或随身携带一个密钥文件(有关此内容的更多信息,请参见下文).(But who can remember all those passwords? Nobody, but KeePass can. KeePass is a free, open source, light-weight and easy-to-use password manager. With this tool, you only need to remember one single, strong master password and/or carry a key file with you (more about this below).)
该程序将您的密码存储在高度加密的数据库中.该数据库仅包含一个文件,因此可以轻松地从一台计算机传输到另一台计算机,并且备份也很容易创建.(The program stores your passwords in a highly encrypted database. This database consists of only one file, so it can be transferred from one computer to another easily, and backups are easy to create.)
KeePass支持组,您可以在其中对条目进行排序.组的示例是" Windows",“网络”," Internet"和"家庭银行",但是您可以自由添加和删除组.(KeePass supports groups, into which you can sort your entries. Examples for groups are “Windows”, “Network”, “Internet” and “Homebanking”, but you can freely add and delete groups.)
KeePass 1.x是Windows应用程序.它是使用Microsoft Visual C ++和MFC类开发的.不需要.NET Framework,也不需要任何其他特殊的DLL.因此,它应在所有Windows操作系统上运行,而无需安装任何其他库.(KeePass 1.x is a Windows application. It has been developed using Microsoft Visual C++ with MFC classes. The .NET Framework is not required, nor are any other special DLLs. So it should run on all Windows operating systems without installation of any additional library.)
KeePass根据GNU通用公共许可证v2的条款进行分发.查看档案(KeePass is distributed under the terms of the GNU General Public License v2. See the file)**License.txt(License.txt)**有关详细信息,请参见可下载的ZIP包.(in the downloadable ZIP package for details.)
主密码和密钥文件(Master Passwords and Key Files)
KeePass将您的密码安全地存储在加密的数据库中.使用主密码和/或密钥文件对该数据库进行加密.(KeePass stores your passwords securely in an encrypted database. This database is encrypted using a master password and/or a key file.)
如果使用主密码,则只需记住该密码(密码长且复杂才能提供良好的安全性).(If you use a master password, you only have to remember this one password (which should be long and complex to provide good security).)
KeePass还可以从密钥文件(不要与数据库文件混淆)中获取主密钥(的一部分).密钥文件可以是任何文件,但建议使用至少包含256位熵的文件. KeePass可以为您生成这样的文件.密钥文件应单独存储,例如在USB记忆棒上.如果将其与数据库文件一起存储,则它不会提供任何保护(因为攻击者会同时获得两个文件).(KeePass can also get (a part of) the master key from a key file (not to be confused with the database file). A key file may be any file, but it’s recommended to use a file that contains at least 256 bits of entropy. KeePass can generate such a file for you. The key file should be stored separately, e.g. on a USB stick. If it is stored together with the database file, it doesn’t provide any protection (as an attacker would get both files).)
为了获得最佳安全性,您可以将两种方法结合使用:可以同时使用主密码和密钥文件,即解密数据库文件时需要同时使用这两种方法.这提供了两方面的安全性:主密码是您所需要的(For best security, you can combine the two methods: you can use a master password and a key file together, i.e. both are then needed to decrypt the database file. This provides two-factor security: the master password is something that you)**知道(know)**密钥文件就是你(and the key file is something that you)有(have).(.)
如果您忘记了主密码或丢失了密钥文件,则无法对数据库进行解密,并且其中存储的所有数据都将丢失.使用非常安全的算法(AES和Twofish)对数据库进行了加密,并且没有后门,也没有可以打开数据库的通用密钥.(If you forget the master password or lose the key file, the database cannot be decrypted and all data stored in it is lost. The database is encrypted using very secure algorithms (AES and Twofish) and there is no backdoor and no universal key that can open your database.)
第一步(First Steps)
现在,我将指导您完成使用KeePass的第一步.如果您有经验并且不需要此,只需跳过本节.(I will now guide you through the first steps of using KeePass. If you are experienced and don’t need this, just skip this section.)
下载二进制ZIP文件并解压缩. KeePass不需要安装;只需解压缩ZIP文件,就可以了.(Download the binary ZIP file and unpack it. KeePass doesn’t need to be installed; just unpack the ZIP file and it’s ready.)
因此,让我们开始(So, let’s start the)**KeePass.exe(KeePass.exe)**文件.您将看到两个灰色列表,一个预览区域,一个菜单栏和一个状态栏.(file. You’ll see two gray lists, a preview area, a menu bar and a status bar.)
默认情况下,KeePass会说英语.如果您想使用其他语言,请访问KeePass网站并下载那里提供的一种翻译(提供40多种语言).将翻译包解压缩到(KeePass by default speaks English. If you want a different language, go to the KeePass website and download one of the translations offered there (over 40 languages are available). Unpack the translation package into the)**语言能力(Languages)**在KeePass应用程序目录中的文件夹中,启动KeePass,转到"查看"→"更改语言…",然后选择您的语言.(folder in the KeePass application directory, start KeePass, go “View” → “Change Language…” and select your language.)
让我们创建一个新的数据库:转到"文件"→"新建".您会看到一个对话框,您可以在其中输入此数据库的主密码(有关此对话框的屏幕截图,请参见上面的部分).如果要使用密钥文件,请指定其位置(如果选择现有文件,KeePass会询问您是否要重用或覆盖它).(Let’s create a new database: go “File” → “New”. You’ll see a dialog where you can enter the master password for this database (see the section above for a screenshot of this dialog). If you want to use a key file, specify its location (if you choose an existing file, KeePass asks you whether you want to reuse or overwrite it).)
创建新数据库后,您将看到一个几乎空白的屏幕.在左侧的树状视图中,您会看到一些为您自动创建的标准组:“常规”," Windows",“网络”," Internet",“电子邮件"和"家庭银行业务”.如果需要,您可以删除这些默认组并自由创建自己的组.在以下屏幕截图中,我创建了一些示例组和条目:(After you’ve created the new database, you see an almost empty screen. In the left tree view, you see a few standard groups which have been automatically created for you: “General”, “Windows”, “Network”, “Internet”, “eMail” and “Homebanking”. If you wish, you can delete these default groups and freely create your own ones. In the following screenshot, I’ve created a few sample groups and entries:)
在您的情况下,右侧的列表视图当前为空(您不会在上面的屏幕截图中看到示例条目).那是条目列表.每个密码将获得其自己的条目.支持各种字段,例如标题,用户名,URL,密码,注释,到期时间,文件附件,图标等等.(The list view on the right is currently empty in your case (you won’t see sample entries as in the screenshot above). That’s the entry list. Each password will get its own entry. Various fields are supported, like title, user name, URL, password, notes, expiry time, file attachment, icon and some more.)
如屏幕截图所示,您可以添加,编辑/查看,移动和删除条目.您可以在整个数据库中或仅在当前选定的组中搜索条目.上下文菜单还允许您将用户名或密码复制到剪贴板(当您执行此操作时,该名称或密码将在几秒钟后自动清除)或访问条目的URL.(As you can see in the screenshot, you can add, edit/view, move and delete entries. You can search entries in the whole database or only in the currently selected group. The context menu also allows you to copy the user name or password to the clipboard (which will be cleared automatically in a few seconds when you do this) or visit the URL of the entry.)
您的第一步将是添加一个条目.右键单击右侧的条目列表,然后选择"添加条目".将打开以下对话框:(Your first step will be to add an entry. Right-click in the entry list on the right and select “Add Entry”. The following dialog will open:)
我认为这很不言自明.当您单击"●●●"按钮时,密码将以纯文本显示,即不会被"●"符号隐藏.(Pretty self-explanatory I think. When you click on the “●●●” button, the passwords will be shown as plain text, i.e. not hidden by ‘●’ symbols.)
当您决定使用KeePass时,我建议让KeePass使用内置的密码生成器为您生成密码.所生成的密码比人类"生成"密码时更容易产生偏见.密码生成对话框也很容易解释,在理解各种选项的功能时,您应该没有任何问题.(When you decide to use KeePass, I recommend to let KeePass generate passwords for you using the built-in password generator. The generated passwords are less biased than when a human “generates” them. The password generation dialog is also pretty self-explanatory and you shouldn’t have any problems understanding what the various options do.)
特征(Features)
您现在应该可以使用KeePass的基本功能.现在,我将介绍KeePass的更多功能.(You should by now be able to use the basic features of KeePass. I will now present some more features of KeePass.)
传送密码(Transferring Passwords)
有多种方法可以将存储在KeePass中的密码获取到其他窗口中.第一种也是最简单的方法是将它们复制到剪贴板.为此,只需双击主条目列表中的特定字段.例如:如果要复制条目的密码,请将鼠标光标移至主条目列表中该条目的密码字段,然后双击;然后将密码复制到剪贴板. KeePass有一个选项,可以在一段时间后自动清除剪贴板.这样可以防止将敏感数据保留在剪贴板中.(There are various ways to get the passwords stored in KeePass into other windows. The first, and most simple method is copying them to the clipboard. For this, just double-click onto the specific field in the main entry list. Example: if you want to copy the password of an entry, move the mouse cursor onto the password field of the entry in the main entry list and double-click; the password is then copied to the clipboard. KeePass has an option for clearing the clipboard automatically after some time; this prevents leaving sensitive data in the clipboard.)
第二种方法是拖放.与第一种方法一样,将鼠标光标移动到要使用的字段上,按住鼠标左键并将数据拖到目标窗口中.(The second method is drag&drop. Like in the first method, move the mouse cursor onto the field that you want to use, press and hold the left mouse button and drag the data into the target window.)
第三种也是最有效的方法是(The third and most powerful method is) 复写(auto-type) .自动键入为您在其他窗口中输入用户名,密码和其他数据.默认的自动键入顺序为(. Auto-Type types user names, passwords and other data into other windows for you. The default auto-type sequence is) {USERNAME}{TAB}{PASSWORD}{ENTER}
,即首先输入用户名,(, i.e. first the user name is typed, the)标签(Tab)按下键,输入密码,然后(key is pressed, the password is typed, and)输入(Enter)被按下.但是,此序列可按条目自定义.这使自动键入功能适用于您将看到的所有窗口和Web表单.有两种方法可以调用自动类型:(is pressed. However, this sequence is customizable per entry. This makes the auto-type feature applicable to all windows and web forms you’ll ever see. There are two methods to invoke auto-type:)
- 明确地.(Explicitly.)选择要自动键入的条目,右键单击该条目,然后单击"执行自动键入". KeePass将前一个窗口带到前台,然后自动键入该窗口.(Select the entry that you want to auto-type, right-click onto it and click “Perform Auto-Type”. KeePass will bring the previous window to the foreground and auto-type into this window.)
- 全局热键.(Global hot key.)这是最强大的方法.您让KeePass在后台运行.当您需要登录的网站时,只需按热键((This is the most powerful method. You leave KeePass running in the background. When you’re on a site that requires a login, just press a hot key ()Ctrl(Ctrl)+(+)Alt键(Alt)+(+)一种(A)默认情况下).根据目标窗口的标题,KeePass找到正确的条目并将其自动键入目标窗口.(by default). Based on the title of the target window, KeePass locates the correct entry and auto-types it into the target window.)
导出,导入,打印,插件(Exporting, Importing, Printing, Plugins)
KeePass可以将数据库导出到TXT,HTML,XML和CSV文件.它可以导入各种格式(例如CSV,CodeWallet TXT,PwSafe v2 TXT和Personal Vault TXT).(KeePass can export the database to TXT, HTML, XML and CSV files. It can import various formats (like CSV, CodeWallet TXT, PwSafe v2 TXT and Personal Vault TXT).)
当然,您也可以打印数据库内容.在打印之前,您可以定义要查看的字段(标题,用户名等).(Of course, you can also print the database contents. Before printing, you can define which fields (title, user name, etc.) you want to see.)
KeePass具有插件架构.您可以从KeePass网站上获得许多插件.这些插件提供了其他文件格式的附加导入/导出功能,集成功能,自动数据库备份功能等等.(KeePass features a plugin architecture. You can get many plugins from the KeePass website. These plugins provide additional import/export capabilities from/to other file formats, integration features, automatic database backup functionalities and much more.)
开源和其他平台(Open Source and Other Platforms)
最好的是:它是完全免费的,您可以完全访问其源代码! KeePass有各种端口可以连接到其他平台.请访问KeePass网站以获取端口列表.(And the best: it’s completely free and you have full access to its source code! There are various ports of KeePass to other platforms; visit the KeePass website for a list of ports.)
安全(Security)
所有数据库都使用高级加密标准(AES/Rijndael,使用256位密钥的128位块密码)或Twofish算法(使用256位密钥的另一个128位块密码)进行加密.我选择了CBC分组密码模式.每次保存数据库时,都会随机生成一个128位初始化向量(IV).(All databases are encrypted using the Advanced Encryption Standard (AES/Rijndael, a 128-bit block cipher using a 256-bit key) or the Twofish algorithm (another 128-bit block cipher using a 256-bit key). I’ve chosen the CBC block cipher mode. A 128-bit initialization vector (IV) is generated randomly each time you save the database.)
为了生成AES/Twofish的256位密钥,主密钥组件(主密码和/或密钥文件的内容)与随机盐(每次保存数据库时随机生成,并保存在它;这防止了密钥的预计算)使用加密安全的哈希算法SHA-256进行哈希处理,然后使用密钥推导函数对哈希进行转换(请参见下文).(In order to generate the 256-bit key for AES/Twofish, the master key components (master password and/or contents of a key file) together with a random salt (which is generated randomly each time you save the database and is saved in it; this prevents a precomputation of keys) are hashed using the cryptographically secure hash algorithm SHA-256 and the hash is then transformed using a key derivation function (see below).)
我们需要生成几个加密安全的随机字节(用于加密IV,主密钥盐等).为此,KeePass首先从多个来源收集熵:当前滴答计数,性能计数器,系统日期/时间,鼠标光标位置,内存状态(可用虚拟内存等),活动窗口,剪贴板所有者,各种进程和线程ID,各种窗口焦点句柄(活动窗口,桌面等),窗口消息堆栈,进程堆状态,进程启动信息和几种系统信息结构.该熵收集在一个池中.为了生成随机字节,使用SHA-256将池与计数器一起进行哈希处理以形成随机字节.然后计数器增加;这样,我们可以根据需要生成任意数量的安全随机字节.(We need to generate several cryptographically secure random bytes (for the encryption IV, the master key salt, etc.). For this, KeePass first collects entropy from several sources: current tick count, performance counter, system date/time, mouse cursor position, memory status (free virtual memory, etc.), active window, clipboard owner, various process and thread IDs, various window focus handles (active window, desktop, …), window message stack, process heap status, process startup information and several system information structures. This entropy is collected in a pool. To generate random bytes, the pool is hashed together with a counter using SHA-256 to form the random bytes. The counter is increased then; this way we can produce as many secure random bytes as we need.)
每次启动KeePass时,它都会执行快速的自检,其中将根据加密算法的正确测试向量对其进行测试.(Each time you start KeePass, it performs a quick self-test, where the cryptographic algorithms are tested against their correct test vectors.)
防止字典和猜测攻击(Protection Against Dictionary and Guessing Attacks)
KeePass提供了一些防止猜测和字典攻击的保护措施.您无法完全防止字典和猜测攻击;没有什么可以阻止攻击者仅尝试可能的密钥并查看数据库是否解密.但是,我们可以做的(和KeePass所做的)是使它变得更加困难:在(KeePass offers some protection against guessing and dictionary attacks. You can’t completely prevent dictionary and guessing attacks; nothing prevents an attacker to just try possible keys and look whether the database decrypts. However, what we can do (and KeePass does) is to make it harder: transforming the key in)**ñ(N)**使用基于AES的密钥派生函数进行的回合会为每个密钥添加一个恒定的时间因子,从而使攻击者需要更多的时间.(rounds using an AES-based key derivation function adds a constant time factor for each key, such that an attacker needs a lot more time.)
默认情况下,KeePass使用(By default, KeePass uses)ñ(N)=60000.使用此数字,可以在可接受的时间内在处理器速度较慢的系统(移动电话等)上打开数据库; PC通常可以进行更多回合.如果仅在快速设备上使用KeePass,则可以增加回合数(可以在数据库设置对话框中进行设置).(= 60000. With this number, it’s possible to open a database on systems with slow processors (mobile phones, etc.) in an acceptable time; PCs usually can do a lot more rounds. If you are using KeePass on fast devices only, you can increase the number of rounds (you can set it in the database settings dialog).)
进程内存保护(Process Memory Protection)
当KeePass运行时,使用(While KeePass is running, sensitive data in the process memory is encrypted using the) CryptProtectMemory
的功能(function of the) Windows数据保护(Windows Data Protection) API(DPAPI).有关详细信息(功能如何正常工作,其限制等),请参见(API (DPAPI). For details (how the feature works exactly, its limitations, etc.), see) 进程内存保护(Process Memory Protection) .(.)
锁定工作区(Locking the Workspace)
锁定KeePass工作区时会发生什么?为什么有时会提示您首先保存数据库?很简单:锁定KeePass工作区会完全关闭数据库,但会记住上一个视图设置(即您选择了哪个组和条目,列表位置等).这样可以提供最大的安全性(解锁工作区就像正常打开数据库一样困难)并防止数据丢失(锁定工作区时计算机崩溃不会造成问题).(What happens when you lock the KeePass workspace? Why are you sometimes prompted to save the database first? It’s simple: locking the KeePass workspace closes the database completely, but remembers the last view settings (i.e. which group and entry you selected, list position, etc.). This provides maximum security (unlocking the workspace is as hard as opening the database the normal way) and prevents data loss (a computer crash is no problem while the workspace is locked).)
内部构造(Internals)
有一个名为的密码管理器类(There is a password manager class called) CPwManager
处理有关数据库的所有操作.它提供了用于编辑组和条目,移动它们等的方法.它不依赖于任何Windows系统特定的功能.(that handles all the operations concerning the database. It provides methods for editing groups and entries, move them, etc. This core class is portable; it doesn’t depend on any Windows system-specific functions.)
班级(The class) CPwExport
处理所有导出功能.它可以导出完整的数据库或仅导出一组.(handles all export functions. It can export the complete database or just one group.)
的(The) CNewRandom
类实现上述的加密安全伪随机数生成器.(class implements the cryptographically secure pseudo-random number generator that’s described above.)
文件(The files)MemUtil.*(*MemUtil.)包含一些与内存相关的功能,例如用于安全擦除缓冲区的功能.在(contain some memory-related functions like one for securely erasing a buffer. In)结构(*StrUtil.),可以找到与字符串相关的函数(例如用于擦除的函数)(, string-related functions can be found (like one for erasing) CString
对象).与应用程序,进程和文件系统相关的其他功能(objects). Miscellaneous functions related to the application, process and file system are in)应用(*AppUtil.)**(例如安全删除文件的功能).((like a function for securely deleting files).)
常见问题解答(FAQ)(Frequently Asked Questions (FAQ))
这是常见问题解答的迷你版.您可以在此处找到完整的常见问题解答:(Here’s a mini version of the FAQ. You can find the complete FAQ here:) 技术常见问题(Technical FAQ) .(.)
我怎么帮你?(How can I help you?)
捐(Donate) , 做一个(, make a) 翻译(translation) ,测试新版本并提交(, test new releases and submit) 虫子(bugs) ,并传播有关KeePass的信息.(, and spread the word about KeePass.)
电子邮件字段?(E-Mail field?)
简而言之:我不会实现它,因为它会降低可用性.您可以在此处找到完整的答案:(In short: I won’t implement it, because it would reduce usability. You can find the full answer here:) 技术常见问题(Technical FAQ) .(.)
那些"安全编辑控件"是什么?(What are those ‘Secure Edit Controls’?)
安全编辑控件是特殊的密码编辑控件,可抵抗窗口间谍和内存转储.有关此的更多信息:(Secure Edit Controls are special password edit controls that are resistant to window spies and memory dumpers. More about this here:) 安全编辑控件(Secure Edit Controls) .(.)
KeePass 1.x和2.x有什么区别?(What are the differences between KeePass 1.x and 2.x?)
见(See the) 版本比较(Edition Comparison) 和(and the) 开发状态常见问题(Development Status FAQ) .(.)
致谢与致谢(Thanks and Acknowledgements)
在这个地方,我要感谢一些人的支持,想法和源代码贡献(不分先后):(At this place I want to thank some people for their support, ideas and source code contributions (in no particular order):)
- 希蒙`史蒂芬妮克(Szymon Stefanek)-对于Rijndael密码的C ++实现.(- for his C++ implementation of the Rijndael cipher.)
- 布莱恩`格拉德曼(Brian Gladman)-对于SHA-2(256/384/512)哈希算法的C实现.(- for his C implementation of the SHA-2 (256/384/512) hashing algorithms.)
- **阿尔瓦罗
门德斯(Alvaro Mendez)(*Alvaro Mendez*)**-用于验证编辑控件的MFC类((*- MFC class for validating edit controls (*)
CAMSEdit` ).().) - **布伦特
科库姆(Brent Corkum)(*Brent Corkum*)**-对于他的类似XP的菜单((*- for his XP-like menu (*)
BCMenu` ).().) - **戴维
卡拉布罗(*Davide Calabro*)**-为了他(*- for his*)
CButtonST` 类.(class.) - Zorglab,Chris Maunder,Alexander Bischofberger,James White,Descartes Systems Sciences Inc.(Zorglab, Chris Maunder, Alexander Bischofberger, James White, Descartes Systems Sciences Inc.)-用于颜色选择器的MFC类((- MFC class for color pickers ()
CColourPickerXP
).().) - **彼得
马雷斯(*Peter Mares*)**-对于他的侧幅横幅窗类((*- for his side banner window class (*)
CKCSideBannerWnd` ).().) - **克里斯
梅德(*Chris Maunder*)**-为了他(*- for his*)
CSystemTray` 类.(class.) - **汉斯
迪特里希(Chris Hanunder)(*Hans Dietrich, Chris Maunder*)**- 为了(*- for the*)
XHyperLink` 类.(class.) - 懒散的(Lallous)- 为了(- for the)
CSendKeys
发动机.(engine.) - PJ诺特(PJ Naughter)-用于单实例检查类.(- for the single instance checking class.)
- 比尔`鲁宾(Bill Rubin)-命令行C ++类.(- Command line C++ classes.)
- 促进开发人员(Boost Developers)-Boost C ++库.(- Boost C++ libraries.)
- 所有(All) 译者(translators) .(.)
- Paul Tannard,Wellread1,Michael Scheer(Paul Tannard, Wellread1, Michael Scheer)-有关功能建议,错误报告以及在论坛中帮助其他人的信息.(- for feature suggestions, bug reports and helping others in the forums.)
- 丹尼尔`图里尼(Daniel Turini)-用于建议" KeePass"作为项目的名称.(- for suggesting “KeePass” as the name of the project.)
- 克里斯托弗`博林(Christopher Bolin)(Christopher Bolin, Victor Andreyenkov)-用于精美的KeePass主程序图标.(- for the nice KeePass main program icons.)
- 大卫`维格诺尼(David Vignoni)(David Vignoni)-用于精美的图标主题" Nuvola"(根据LGPL许可可免费使用).(- for the nice icon theme ‘Nuvola’ (which is freely usable under the LGPL license).)
历史(History)
您可以在以下位置找到最新新闻和版本历史记录:(You can find the latest news and the version history on the) KeePass网站(KeePass website) .(.)
一些最后的话(Some Final Words)
我将在CodeProject上上传最重要和主要版本的KeePass1.x.有关KeePass 2.x和最新的不稳定版本,请访问KeePass网站.(I will upload the most important and major versions of KeePass 1.x here on CodeProject. For KeePass 2.x and the latest unstable releases, visit the KeePass website.)
而已.我希望我可以使用此工具使您的生活更轻松:-)(That’s it. I hope I was able to make your life a bit easier with this tool :-))
许可
本文以及所有相关的源代码和文件均已获得The Code Project Open License (CPOL)的许可。
VC9.0 Objective-C C++ WinXP Win2003 Vista Win2K Win32 Visual-Studio VS2008 新闻 翻译