免费获取|
论文天下网
  • 论文天下网 |
  • 原创毕业论文 |
  • 论文范文 |
  • 论文下载 |
  • 计算机论文 |
  • 论文降重 |
  • 毕业论文 |
  • 外文翻译 |
  • 免费论文 |
  • 开题报告 |
  • 心得体会 |

当前位置:论文天下网 -> 免费论文 -> 计算机论文

免费房产证信息数字签名的实现(七)

amp;15]^block->l[i&15],1))

/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */
#define R0(v,w,x,y,z,i)
z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30);/*对常用公式进行宏定义 ,以精简程序*/
#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30);
#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30);
#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30);
#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30);
 在对文件进行安全哈希后得到了一个消息摘要文件,对文件的签名除了需要消息摘要文件以外还需要用户持有的私钥文件,有了这两个必须的,就可以对原文件进行签名运算了,在生成签名的时候我们将会用到生成签名算法。生成签名算法的具体实现代码如下:
 void GensigDlg::OnGensig()
{
 // TODO: Add your control notification handler code here
 if(m_strPK.IsEmpty()){
  MessageBox("请导入私钥",NULL,MB_ICONERROR|MB_OK);
  return;
 }
 if(m_strF.IsEmpty()){
  MessageBox("请选择要签名的文件",NULL,MB_ICONERROR|MB_OK);
  return;
 }
 //----sha------------//
 int i;
 SHA1_CTX context;
 unsigned char digest[20], buffer[16384];
 FILE* file;
 if(!(file=fopen(LPCTSTR(m_strF),"rb"))){
  MessageBox("无法打开文件!");
  return;
 }
 SHA1Init(&context);
    while (!feof(file)) {  // note: what if ferror(file)
        i = fread(buffer, 1, 16384, file);
        SHA1Update(&context, buffer, i);
    }
    SHA1Final(digest, &context);
 fclose(file);
 //--------------------//
 dig.Mov(0);
 for(int j=0;j<5;j++){
  memcpy(&dig.m_ulValue[j],&digest[j*4],4);
 }
 dig.m_nLength=5;
 CRsa enc;
 sig.Mov(enc.encrypt(dig,n,pk));
 sig.Put(m_strS);
 UpdateData(FALSE);
}
3.3.3 签名验证模块
 此模块主要是用于鉴别用户的数字证书的真伪性的。在这个模块用户只需要把自己的私钥文件和前一个模块地到的签名文件与用户填写的房产证公文文件共同导入这个模块通过计算机的运算对比就可以得出真假的鉴别结果。在此过程中必须要保证用户的私有信息要完全准确无误,还需要这个用户有自己的私钥文件和相应的数字签名文件,在这三个条件都能满足验证系统的要求的情况下得出的真伪鉴别结论可信度是值得肯定的,具体实现如图8所示。
    
 
 图8   签名与验证模块图
 在对证书文件进行签名以后,如果用户需要知道自己的证书是不是真的,他就需要通过管理中心来对自己的证书进行鉴别和验证。
 验证签名过程的实行通过以下一段VC++代码来实现其验证功能
void CersigDlg::OnCers()
{
 // TODO: Add your control notification handler code here
 if(m_strUK.IsEmpty()){
  MessageBox("请导入公钥",NULL,MB_ICONERROR|MB_OK);
  return;
 }
 if(m_strF.IsEmpty()){
  MessageBox("请选择签名文件",NULL,MB_ICONERROR|MB_OK);
  return;
 }
 if(m_strS.IsEmpty()){
  MessageBox("请导入签名",NULL,MB_ICONERROR|MB_OK);
  return;
 }
 //----sha------------//
 int i;
 SHA1_CTX context;
 unsigned char digest[20], buffer[16384];
 FILE* file;
 if(!(file=fopen(LPCTSTR(m_strF),"rb"))){
  MessageBox("无法打开文件!");
  return;
 }
 SHA1Init(&context);
    while (!feof(file)) {  // no

首页 上一页 4 5 6 7 8 9 下一页 尾页 7/9/9

相关论文
上一篇:免费H考试题库管理系统的设计与实.. 下一篇:免费个人入侵检测系统的实现
推荐论文 本专业最新论文
Tags:房产证 信息 数字签名 实现 【返回顶部】

相关栏目

自动化相关
计算机论文
工程管理论文
法律论文
医学论文
人力资源
电子专业
电气工程
英语论文
行政管理
电子商务
社科文学
教育论文
物流专业
金融专业
财务管理
会计专业
化学化工材料科学
电子通信
环境科学
经济类
机械模具类
报告,总结,申请书
其他专业论文


关于我们 | 联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 原创毕业论文

 

论文天下网提供论文检测,论文降重,论文范文,论文排版,网站永久域名WWW.GEPUW.NET

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 893628136@qq.com

Copyright@ 2009-2022 GEPUW.NET 论文天下网 版权所有