网上银行的公共业务层

更新时间:2024-03-04 作者:用户投稿原创标记本站原创 点赞:10114 浏览:43443

摘 要 文章编码实现采用面向对象的方法,公共业务层是由一组公共的功能类组成的,每一个功能类完成一组特定功能的封装实现.这些功能类将会被应用到上层的多个应用程序中,也能够应用在日后其他应用程序的开发.按照功能划分,这些公共类可以分组为:加密解密处理、注册表操作、文件格式处理.文章分别对这三组公共类的实现进行详细介绍.

关 键 词加密解密;注册表;文件格式

中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2013)19-0078-01

1.加密解密处理

加密解密处理主要是对微软的Crypto API进行封装,以面向对象的方式,将实现相关底层函数封装为C++类的形式,对上层应用程序提供简单的调用接口,将CryptoAPI调用等复杂的实现细节封装在类的实现内部.加密解密处理主要通过类CUtilCrypto来实现,下面对CutilCrypto的主要函数和属性进行详细介绍.


1.1 InitKey

通过口令初始化加密密钥.密钥的生成算法,函数是加密/解密流程首先需要调用的函数,成功产生密钥以后,才能进行后续的加密和解密操作.函数执行成功后,会将生成的密钥对象保存在类的私有成员中.

1.2 EncryptString

加密一个字符串.该函数的输入输出均为可见字符串,通过加密密钥,采用高强度对称算法对数据进行加密.加密后的数据是二进制的密文数据,通过Base64编码以后,转换成可见字符串,然后输出.EncryptString和DecryptString是一组对应的函数,主要用于处理简单的字符串加密.本文功能实现中,主要用来实现用户默认口令在注册表中保存时的加密处理,保障用户保存的默认口令不会被他人通过注册表获得.

1.3 DecryptString

解密一个字符串.同EncryptString函数对应,本函数的输入,即为EncryptString函数输出的Base64编码的密文数据.函数在进行解密处理前,首先对输入数据进行Base64解密,获得原始的密文数据,然后调用相应的解密函数对数据进行解密处理.

1.4 EncryptData

加密一段数据.与EncryptString函数不同,EncryptData处理的输入数据为二进制格式的数据,加密后的输出数据也是二进制格式的原始密文数据.函数参数明确指定了输入数据的大小.由于对称加的密文数据和原始数据大小相近(相差不到一个块的大小),从运算效率角度考虑,加密数据的输出复用了输入参数.即函数成功执行后,输入的加密数据的内容,即变为加密后的密文数据.同样,加密后的密文数据长度也通过输入的明文数据长度的参数进行返回.

对称加密对数据是按固定大小的块进行处理的,加密处理可以按多次分组进行处理,通过另一个参数指定本次调用是否为最后一组数据.在中间处理时,本次处理的数据如果不是块大小的整数倍,会将剩余的数据留到下一次调用时进行处理;对于末次调用,如果数据大小不满足加密块大小的整数倍,会对数据进行补位对齐处理,解密过程中会按照补位对齐规则去掉补位数据.

1.5 DecryptData

解密一段数据.与EncryptData函数相关,是EncryptData的逆操作.输入数据为原始的加密数据明文,输出数据同样也复用了输入数据的参数.与EncryptData类似解密过程同样也可以分多次调用完成,通过另一个参数指明是否为最后一组数据.末组数据的解密处理,会执行去除补位的操作.

2.注册表操作

注册表操作相关的公共代码,主要实现对注册表操作的封装.这里涉及到的主要的类是CUtilReg类.CutilReg中,定义了统一的注册表路径、键值名称、默认数据等,将实现注册表读取和写入操作封装为具体的功能函数,统一实现注册表的访问操作.上层应用在调用CutilReg以后,将对注册表操作透明,只是按照普通的获取数据或者设置数据的方式来进行调用即可.CutilReg类中包含的主要函数有.

2.1 RegDownLoadUI

修改IE下的注册键值,替换默认的下载管理器界面.此函数操作的是IE的注册键值,相当于修改IE的系统参数配置.通过该函数的调用,将BHO对象注册为IE的下载界面,当IE中发生文件下载请求是,会调用BHO对象的相关处理界面.

2.2 LoadEncryptMode

加载默认的加载模式.加密模式指的是针对加密文件下载,采用明文方式保存还是加密方式保存,以及文件的口令等.函数调用成功,表示用户使用了默认设置.函数调用失败,表示用户未使用默认设置,即每次下载都会进行选择提示.

2.3 SetEncryptMode

设置默认加密模式.将指定的加密模式设置为默认配置.这样,在调用LoadEncryptMode时就会成功返回用户设置的默认加密模式.

2.4 UnsetEncryptMode

取消默认加密模式设置.成功调用该函数,将清除注册表中的默认加密模式设置.下次调用LoadEncryptMode时就会返回失败.

2.5 LoadUrlFilter

获得URL过滤规则.如果注册表中没有对应的键值,将会返回程序默认的过滤规则.可以通过在注册表中增加相应的键值,来改变默认的URL过滤规则.

2.6 LoadFileExt

获得文件扩展名过滤规则.如果注册表中没有对应的键值,将会返回程序默认的过滤规则.可以通过在注册表中增加相应的键值,来改变默认的扩展名过滤规则.

3.文件格式处理

文件格式处理主要是对加密文件格式的文件格式的编解码实现.文件格式处理主要有一组相关的功能类实现,按照实现层次划分为两类:文件内容的组织和文件格式的解析.