快速业务通道

模拟信息加密流程图简介

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-30

Encryption_Demo 代码模拟了图一和图二的流程图内容,但仅仅只是模拟,谈不上什么应用;其应用过程限于程序间的传递过程,没有涉及到网络间数据传输,所以仅仅是模拟其过程而已。

模拟信息加密流程图简介

图一 采用安全认证的信息加密流程图

模拟信息加密流程图简介

图二 采用安全认证技术的信息解密过程图

模拟信息加密流程图简介

图三 采用安全认证的信息加密流程图文字说明

模拟信息加密流程图简介

图四 采用安全认证技术的信息解密过程图的文字说明

Encryption_Demo 代码没有什么新奇之处。发布的目的在于使大家了解“采用安全认证的信息加密流程图”的运作过程。代码,大家可以下载看一看。下面我要说的是,最主要的工作体现在字节数组的偏移量的计算上。比如在本程序中采用MD5散列,其散列值固定长度16个字节;采用DES算法分组加密,其Key和IV字节数都为8个字节;采用RSA进行签名,签名长度固定为128个字节,而加密结果的长度呢,我们要加密的字节数组长度为128+8+8 = 144,那么RSA非对称加密后的字节数长度就为1152个字节长度。那么,在第一个流程图中,合并后的整个密文数据字节长度,我们知道不固定,可是它的第一部分和第三部分长度是固定的(再强调一次,我们这里使用DES分组加密算法,MD5散列函数,RSA方法签名和加密,下面分析结果也都是建立这基础上的)。比如:

加密后的会话密文 —— RsaEncryptData :1152

摘要签字 —— CombinData : 144

我们可以获得整个要截密文件的长度string fileName = OpenFile("请打开要解密的文件:");
FileStream fs = new FileStream(fileName,FileMode.Open,FileAccess.Read);

(int)fs.Length - 1152-144 运算结果就是中间密文---EncryptionDate 的长度。解密中间密文后,紧接着就要处理时间戳啦。我们分析时间戳的字节数组组成吧:

文件散列长度 :16
接收时间 :23
签名长度 :128
总共长度 :167

既然知道这些字节数组的组成,你该知道怎么做了吧?关于处理接收时间戳的处理上,有点要注意的:

public static byte [] GetTimeNow()
{
  //这样转化成的格式为:2004-11-09 13:04:28-108 23个字节
  DateTime now = DateTime.Now;
  System.Text.UTF8Encoding utf = new System.Text.UTF8Encoding();
  
  string month = null ;
  if(now.Month<10)
    month = "0"+now.Month.ToString();
  else
    month = now.Month.ToString();
  
  string day = null;
  if(now.Day<10)
    day = "0" + now.Day.ToString();
  else
    day = now.Day.ToString();
  
  string millisecond = null;
  if(now.Millisecond<10)
    millisecond = "00"+now.Millisecond.ToString();
  if(now.Millisecond>=10&&now.Millisecond<=99)
    millisecond = "0" + now.Millisecond.ToString();
  if(now.Millisecond>=100)
    millisecond = now.Millisecond.ToString();
  string FullFormatTime = now.Year.ToString() +
                 "-" + month + "-" +
                 day + " " +
                 now.ToLongTimeString() + "-" + millisecond ;
  //比如:2004-11-09 13:04:28-108
  return utf.GetBytes( FullFormatTime );    
}

这样处理后的结果是接收时间精确到毫秒,且固定字节长度为23个字节。我们把第一个流程图的结果写进文件中去(其路径与你要加密的原始明文在同一目录下,主要是为了储存的方便),而流程图二的解密结果则保存在bin\Release目下。这样解密时需要读取文

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号