官方网站
未来计划
密码管理器说到底是一个功能有限的小软件,最初也只是作为我学习Winform的一个小作品。一来一旦功能基本完善,就没有很多地方值得更新;二来由于我的技术水平目前还很有限,前期写的代码很多结构不是非常规范,对于大版本的更新也不不是很方便的事情,甚至不如推倒重来。所以接下来没有大的功能性问题不再更新,更新频率不定(可以通过检查更新按钮来查看)。其实我想更新的功能还有很多,比如说:
1.更兼容的数据导入功能
2.开机引导功能
3.免责声明和作者寄语提示
4.更好看的UI甚至可以换肤
5.支持选择同步坚果云WebDav
6.高级用户允许选择使用自己购买的数据库
7.非对称加密
8.标准的应用打包方式
9.增加反馈区
10.自动下载覆盖更新的功能 11.支持通过邮箱找回密码的功能等等。
但是我毕竟不是我的主要学习方向,所以这些都以后再说吧,说不定哪天一时兴起就更新了,所以咱们有缘再见。
主要特性及功能(截至2020年09月27日)
- 1.注册用户功能及登陆功能
- 2.平台账号密码等信息添加到云端数据库功能
- 3.修改或者删除或者搜索已添加数据的功能
- 4.生成随机密码、快捷复制、打开网址功能、记住密码、自动登录等懒人功能
- 5.禁止后台多开的特性
- 6.数据加密存储的特性
- 7.支持检查更新的特性
- 8.软件临时锁定的功能
- 9.数据支持导出到本地以及从本地导入到云端
- 10.拥有软件官网(包含一些常见问题说明,功能指南等)
快速使用视频预览
视频地址如下:
https://www.bilibili.com/video/BV1oT4y1c7qT/
代码记录
防止软件多开
在Program.cs文件中
1 | static void Main() |
在打开主窗体前打开注册登录窗体
在Program.cs文件中
1 | static void Main() |
生成随机密码
1 | public static string GenerateNoncePwd(int length) |
Base64加密解密
可以用于简单加密字符串(比如说邮箱地址、数据库账号等)
1 | static string encryptKey = "abcd";//字符串加密密钥(注意:密钥只能是4位) |
利用正则表达式设置规则
判断是否为密码格式
1 | string api_password = textBox1.Text; |
判断是否为链接格式
1 | public static bool IsUrl(string url) |
注册功能
1 | string conStr="server=xxx;user id=xxx;password=xxx;port=xxx;database=xxx"; |
补充:如果要多次使用数据库连接字符串,可以存储在配置文件中。
在App.config文件中
1 | <connectionStrings> |
在其它文件中获取配置文件中的连接字符串
1 | string conStr= ConfigurationManager.ConnectionStrings["连接字符串名称"].ConnectionString; |
记住密码功能
在App.config文件中
1 | <appSettings> |
在勾选记住密码checkbox函数中
1 | Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); |
在窗体载入事件中
1 | private void LoginWindow_Load(object sender, EventArgs e) |
检查更新功能
在云端update.xml文件中
1 |
|
在检查更新按钮点击事件中
1 | const string updateUrl = "https://www.aye.ink/PasswordManager/update.xml"; |
数据导出功能
将数据从datagridview中导出到电脑本地保存为csv格式
1 | public bool dataGridViewToCSV(DataGridView dataGridView) |
窗体间相互传值
C#Winform+MySQL无服务器聊天项目
值得学习的地方主要有:1.smtp邮件发送(这样就可以完成找回密码的功能) 2.后台数据刷新及传递(winform中数据库的一些操作)3.里面两个封装好的类(一个是数据库相关的类;一个是邮件相关的类)非常好用