计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

免费房产证信息数字签名的实现(一)毕业(4)

2013-06-29 01:28
导读:nbsp; 验证者对消息使用SHA-1算法重新计算,得到验证者自己的消息摘要。验证者比较解密得到的消息摘要和自己得到的消息摘要,如果两者相同,则验证成
nbsp; 验证者对消息使用SHA-1算法重新计算,得到验证者自己的消息摘要。验证者比较解密得到的消息摘要和自己得到的消息摘要,如果两者相同,则验证成功,可以确认消息的完整性及签名确实为签名者的;否则,验证失败。
 RSA的数字认证的实现流程
 其详细过程如下:
 (1) 证书持有人A将公文数字证书原文信息用安全哈希算法SHA-1进行哈希运算,得一哈希值即数字摘要D’;(如图1所示)
 (2) 证书持有人A用自己的私钥,采用非对称RSA算法,对数字摘要MD进行加密,即得数字签名DS;(如图1所示) 
 (3) 鉴别中心B接受到数字签名DS后的文件,首先用接证书管理中心的鉴别公钥进行解密,取出得到消息摘要D’;(如图2所示)     (4)将原文信息同样的安全哈希算法进行哈希,得到一个消息摘要D”;(如图3所示)
 (5)将两个消息摘要D’和D”进行比较,验证原文是否被修改。如果二者相等,说明数据没有被篡改。
 这样就做到了敏感信息在数字签名的传输中不被篡改,说明这个签名的证书确实是证书持有人的,起了在对证件防伪系统中对持有证书人真实身份的鉴别。

 
 图1  RSA私钥加密 :哈希和签名
 
 
 图2 RSA公钥解密
 
 图3 哈希过程
 
3 房产证公文数字签名系统总体设计
 3.1系统功能图
 房产证公文数字签名系统总共分为两大功能模块:房产证公文处理模块和信息安全处理模块,而信息安全处理模块主要由密钥管理模块,数字签名生成模块和签名验证模块构成,(如图4所示)
 
图 4 系统功能图
 下面分别介绍各个模块的功能 (转载自http://www.NSEAC.com中国科教评价网)
 3.2 房产证公文处理模块
 在不同的房产证中相应的证件的输入信息不相同,公文处理模块采用证件输入界面,将信息存储为一种统一的数据格式公文文件就可以进行相同的安全处理,在验证时在将统一格式的数据公文进行信息还原就可以实现。因此系统可以方便的进行信息输入,其证件信息输入界面如图5所示。
 
图5 房产证信息输入界面
 在公文处理模块中,监管中心需要把用户房屋产权者的相关内容输入这个数字文件中;
 例如 :   
 证书持有人姓名;          张XXX
 房屋产证编号;            0000354
 房屋的类型;              商品房
 房屋使用年限;            50年
 房屋所在地址;            XXX路XX街XXXX号
 开发商名称;              XXX房地产开发公司
 物管单位;                XXX物业管理公司
 户主联系电话              02883961853
 私密问题;      XXXXXX
 问题答案;      XXXXXXX
 当用户把这些都输入到相应的对话框中通过保存按钮就可以把这个证件保存在一个相应的文件中。这个只是房产证件原件对应的数字公文文件。
 为了真正能对户主的利益安全考虑,在本设计中还加入了一个户主的秘密问题,以及秘密问题的答案这两项。通过这两项再结合数字签名就更能更好的辨别这个证件的真伪了,假如户主提问; 我高中最喜欢的一个老师是某某某? (科教范文网http://fw.NSEAC.com编辑发布)
 户主自己回答的答案是ABC,如果遇到有人想假冒户主并私自使用户主的房产证的时候,在鉴别房产证的真伪的时候。他如果在秘密问题这个选项提问和原来的不一样或者回答的答案不一样在经过相同的方法处理后就和户主本身持都的房产证公文文件有很大的差别,由此断定这个数字证书是假冒的。
 对输入信息的保存实现代码
 void GenfczDlg::OnSave()
 {
  UpdateData();
  CFileDialog save_uk_dlg(FALSE,"uk",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"Public fcz files (*.txt)|*.txt");
  if(save_uk_dlg.DoModal()==IDOK){
   CString file_path=save_uk_dlg.GetPathName();
   CFile fuk(file_path,CFile::modeCreate|CFile::modeWrite);
  
   char endline[1]={';'};
         fuk.Write((LPCTSTR)m_name,m_num.GetLength());
   fuk.Write(endline,1);
   fuk.Write((LPCTSTR)m_num,m_num.GetLength());
   fuk.Write(endline,1);
   fuk.Write((LPCTSTR)m_addr,m_addr.GetLength());
 

上一篇:免费H考试题库管理系统的设计与实现(一) 下一篇:免费vc++网上寻呼QICQ源代码(附带论文)(一)