APP下载

石油行业商业软件密码服务系统设计

2015-10-17

河南科技 2015年7期
关键词:用户名密码次数

章 涛 白 桦 庞 帅 王 巍

(1 1..中国石油大学,北京 10224902249;2 2..浙江正泰中自控制工程有限公司,浙江 杭州 31001810018)

1 石油领域商业软件开发前景及问题

由于石油领域自身背景所限,大学生的编程水平主要集中在计算上,而对软件架构、界面设计等只停留在初步水准。除此以外,考虑到石油行业现场条件复杂,一线技术人员需要快捷简洁的操作方式。基于占用最少资源和操作时间的原则,软件的计算主体以外部分(即登录、帮助、保存和打印等功能)要相对的简化。鉴于此,我们需要对软件盈利方式中关键的密码服务系统进行全面的设计。

2 密码服务系统设计

我们结合自身特点,设计了简单用户名-密码控制和在此基础上的使用次数控制、使用时间控制以及机器码-密码控制四套简便的密码服务系统。我们采用石油行业商业软件常用外包装界面语言——VB6.0编写了示范代码。VB优秀的可视化编程语言,在用户界面设计和快速开发等方面具有独特的优势[1]。从5.0版本开始,可以编译链接生成本机代码的可执行文件,能够脱离 VB的集成开发环境进行发布,较好地封装了用户的算法,有效地保护用户的源代码[2]。

2.1 简单用户名—密码控制系统

基本的密码服务系统就是依靠用户名和密码的匹配来进行身份验证。即用户输入从软件开发者处购买的用户名和密码,软件内部程序会检测是否匹配来验证使用者的权限。下面是一段实例代码:

上述基本的用户名-密码验证系统的缺陷在于获得了身份信息的用户可以无限制使用程序,甚至可以把得到验证的用户名和密码流传出去,影响软件的后续销售。

2.2 使用次数控制

在2.1节介绍的用户名-密码系统基础上,我们可以加入使用次数的控制方法。即用户以一定金额购买软件的使用次数,每一次输入用户名和密码运行程序就会进行计数,达到使用次数上限的用户将无法通过验证。这个方法有一个缺陷在于,用户在达到一定使用次数后可以重新安装软件,清零使用计数从而获得超出其购买次数的使用量。为了解决这个问题,我们的处理方法是用户安装软件时程序默认在指定的一个盘符里建一个新的dat文件,存储使用次数。每次安装时会检测这个文件是否存在,如果已存在则不会重新建文件(即把次数归零)。VB语言中检测文件是否存在的语句如下:

其中,app.path指存储文件的路径,abc.dat指存储次数的数据文件名。其余部分与2.1节类似,只需要加入统计使用次数的变量即可,这里不多做赘述。但是,本方法虽然能控制一台计算机上使用软件的次数,但是用户也可以通过在新机器上安装软件(相当于使用次数清零了)的方法获得新的使用次数,这也会影响到软件著作者的权益。

2.3 使用时间控制

还有一种商业软件的销售模式是控制用户使用软件的时间段,这分为使用软件的总时长控制和软件使用期限控制两种方法。前者需要记录用户每次打开和关闭软件的时间来获得使用时长并叠加,超过用户购买的时长以后则软件失效。后者则在每次用户登录系统后验证此时的系统时间是否超出了购买时限定的使用期限。为了防止用户采取修改系统时间来无限使用软件的方法,我们可以在用户输入用户名及密码后读取网络时间来进行判断。VB语言里读取网络时间的语句为;

这种语言的缺陷还是在于无法控制软件在不同机器间的流传。

2.4 机器码-密码验证系统

为了克服上述三种方法在机器间流传上的无力局面,我们设计了一套机器码-密码验证系统。这套系统的逻辑为:用户先在作者提供的机器码生成器上得到本机对应的机器码并反馈给软件著作者,编写者用密码生成器根据机器码生成密码发给用户。用户界面也会隐式地生成密码和用户得到的密码相检验以实现密码认证的过程。机器码的生成是与用户计算机的物理地址对应,这就避免了多台计算机可以采用同一套用户名登录的问题。VB语言读取计算机物理地址的示例代码如下:

机器码与密码之间的转换我们采用的进制转换法,即在十进制下进行密码算法计算,再转换为十六进制形式设置为密码。十六进制数字往往很难辨认出规律和关系,有利于密码算法的保密性。

3 结语

本文针对商业软件盈利模式中非常重要的身份验证,分析了简单用户名-密码控制和在此基础上的使用次数控制、使用时间控制以及机器码-密码控制这四套简便的密码服务系统的优劣之处,考虑到程序的简洁和便捷以及盈利模式的可持续性,我们推荐采用机器码-控制系统。当然,用户也可以根据自身实际情况选择合适的控制方法或者控制方法组合。

[1]赵立伟,张春,施寅.面向过程的编译和解释环境在工控组态软件系统中的应用[J].微计算机信息,2005,4:20-21.

[2]朱从旭,邓宏贵.用VB和Fortran混合编程开发科学计算与作图软件[J].计算机应用,2000(20):65-67.

猜你喜欢

用户名密码次数
《护士进修杂志》投稿程序
密码里的爱
机场航站楼年雷击次数计算
2020年,我国汽车召回次数同比减少10.8%,召回数量同比增长3.9%
一类无界算子的二次数值域和谱
密码疲劳
机智的快递员
依据“次数”求概率
密码藏在何处
夺命密码