从零开始用C#做产品:私人日记(21)程序参数设计

到上一节为止,我们基本实现了内容的分类与管理,至此,我们可以用这个小软件来记录一些内容了。

就目前的内容管理功能来说,对我而言基本够用了,再往下无非就是Rtf编辑器、Tag标签、内容查询等细化的功能,这些都属于锦上添花的功能,可以在后续的开发中不断完善。

我更关心的还是安全性的问题,包括两方面:一是访问安全,二是存储安全。

访问安全有两点:

1进入程序需要口令,只有口令验证通过才能进入。这种方式可以阻挡小白用户误点程序而看到内容。

2数据库内容加密。比如任何人用SqliteStudio,就能够打开sqlite数据库,如果数据库文件被窃取,窃取者就可以通过查询数据库的方式获取文件内容。所以,在保存时需要对数据库进行编码,这样窃取者即便获得了数据库文件,也只能看到一堆的乱码,无法查阅到真实的数据。

存储安全则主要就是数据库文件的备份。最好的方式是可以将数据库文件自动同步到云盘,如百度云盘,异地备份,受众群也较广。不过考虑到这个系列是入门教程,对第三方接口这类的内容不打算过多深入了,以后有机会可以专门单独开一个系列讲。这里我们就选择相对简单的局域网网络备份的方式来实现。

当然天下没有绝对的安全。理论上,只要是软件,任何加密手段都有可能被破解。登录口令可以爆破撞库,数据库内容可以对程序进行反编译,得到解码算法,然后再来还原。但是无论什么事我们讲的都是一个概率,这种情况发生的概率是:你的电脑被黑+黑客在你的电脑中注意到了这个程序+黑客有兴趣研究这个程序+黑客懂得破解的方法,这4种情况的概率组合比起内容直接暴露给第三方,我宁愿相信自己。

好,那我们整理下接下来要实现的内容:

其中数据库内容其实我们已经在上一节实现了。教程中我用了最简单的Url编码形式,只是为了能够保存到数据库中。正常来说,比较常规的方式是用base64编码,有人说这破解起来太不是容易了,别人只要base64解码不就好了。其实这部分是可以自由发挥的,比如编码后对字符进行变换,a->b,b->c...z->a,解码时再做逆变换,或者你只针对特定字符做特定替换,然后再做一遍base64编码,当然你也可以使用RSA等等,只要你能想到的并且能够做逆向还原就好。对方想破解,只能反编译你的程序代码。一旦你的程序代码被反编译,任何算法也都是徒劳的,除非你不做内容还原。关于程序破解与反破解,这部分内容超出本系列教程的范围了,以后有机会单独开系列讲,这里就不详细展开了。

剩下两个功能,无论是口令验证功能,还是数据库文件备份功能,都涉及到一个程序参数保存的问题,我们需要把正确的口令值、数据库文件保存的路径保存到文件或数据库中,这些程序参数我们需要统一管理。

不仅是私人日记这个产品,基本上所有软件产品都需要提供类似的程序参数设定,这些都是为了用户的个性化设置,这也是软件产品和软件项目的核心差别所在:软件项目很多都是程序中指定的值,开发者一是为了开发便利,二是防止复制给其他用户使用,而软件产品则需要尽可能的提供程序参数给用户进行设置,以便可以满足更多的用户需求。

由于我们已经使用了sqlite数据库,那么我们就采用数据库保存的方案。

具体操作如下:

数据库中新建一个Setting表

从零开始用C#做产品:私人日记(21)程序参数设计

新建Model.Setting类:

从零开始用C#做产品:私人日记(21)程序参数设计

新建BAL.Setting类:

从零开始用C#做产品:私人日记(21)程序参数设计

从零开始用C#做产品:私人日记(21)程序参数设计

简单说下BAL.Setting,类中我们定义了一个静态变量htValues,这个哈希表保存了所有的程序参数。之所以增加了这个内存变量,就是为了提高效率,不需要每次使用都从数据库读取。更新时,会把新的值同时写入内存和数据库中。

经过以上的代码,我们就完成了程序参数的架构搭建,我们在MainForm中加入测试代码:

从零开始用C#做产品:私人日记(21)程序参数设计

运行到断点出后,我们发现pwd值为刚刚写入的123,符合我们的预期。

下一节,我们将实现口令登录。

----------------------------------------------------

本教程尽量保证2天一更,项目源码已作为开源项目加入到Gitee,代码内容会随教程实时更新,大家有兴趣的话可以关注我,以获得最及时的更新。私信:

私人日记 可以获取Gitee的链接;

sqlitestudio 可以获取sqlitestudio的链接;

菜鸟 可以获取菜鸟教程链接;

大家阅读过程中有哪些看不懂或未尽兴的地方,可以在评论区留言,我会先记下来在后续的教程中找机会再说。

教程有帮助的话请大家帮忙关注、转发、扩散,能不能开专栏还需要你们的支持!

展开阅读全文

页面更新:2024-04-14

标签:参数   程序   菜鸟   软件产品   口令   概率   备份   私人   功能   方式   数据库   项目   教程   日记   系列   内容   用户   产品   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top