模拟信息加密流程图简介

2016-01-29 12:13 86 1 收藏

模拟信息加密流程图简介,模拟信息加密流程图简介

【 tulaoshi.com - C语言心得技巧 】

模拟信息加密流程图简介

作者:Nie Yong

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

下载源代码

  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 的长度。解密中间密文后,紧接着就要处理时间戳啦。我们分析时间戳的字节数组组成吧:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)
文件散列长度 :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();elsemonth = now.Month.ToString();string day = null;if(now.Day<10)day = "0" + now.Day.ToString();elseday = 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-108return utf.GetBytes( FullFormatTime );         } 
  这样处理后的结果是接收时间精确到毫秒,且固定字节长度为23个字节。我们把第一个流程图的结果写进文件中去(其路径与你要加密的原始明文在同一目录下,主要是为了储存的方便),而流程图二的解密结果则保存在binRelease目下。这样解密时需要读取文件,这里提供了两种方法,第一种把文件内容读取到一个数组里面,另外一种是需要时直接从文件中提取的指定的字节数组。第一种方法把文件内容读取到一数组,解密时分解数组,使用Buffer.BlockCopy( )函数分解既可。比如,从fileContent数组中偏移量1152处开始复制“length”长度字节复制到一个新的数组“Encrypt_Two”中去。
int length = (int)fs.Length-1296;// -1152-144 ; //密文的长度AllEncryptedDataEncrypt_Two = new byte[ length ];Buffer.BlockCopy(fileC
                        

来源:https://www.tulaoshi.com/n/20160129/1485158.html

延伸阅读
标签: 办公软件
    在工作中,我们常常会需要绘制诸如业务流程之类的流程图。如果使用比较经典的流程图绘制工具,比如Visio,可能会觉得比较麻烦,而且也不容易与Word文档一起排版。这时你可能会采用Word自带的流程图绘图工具来绘制流程图。但是,Word的早期版本,即使是Word2000在流程图的绘制,尤其是修改方面都是非常麻烦的。我们常常需要...
标签: word
word2007中制作流程图   说到制作流程图,一般人都会用PS、AI、CDR等软件,其实在word2007中也可以制作流程图,word功能强大,我们可以利用自选图形库提供的流程图形状和连接符制作各种流程图。具体怎么操作呢,下面是具体步骤: 1.打开word文档,进入插入选项卡,在插图选项组中单击形状按钮,选择新建绘图画布命令。 提...
一:新建文件夹,然后再左下角找到“自选图形”中的“流程图”。选择一个图形。   二:在作图区域随意点击,出现作图的区域。   三:重复点击“流程图”,然后选择自己需要的图形,接着在作图区域点击,就会出现自己需要的方框。   ...
PowerPoint2013如何制作阶梯流程图   ①启动PowerPoint2013,单击菜单栏--插入--形状,选择方角矩形,在图中画出来。 ②画好矩形,摆放到合适的位置,如下图所示。 ③然后再次单击菜单栏--插入--形状,选择肘型连接符。 ④将矩形用连接符连接(www.tulaoshi.com)起来,我们移动的时候,矩形会出现小圆点,我们...
标签: word
如何运用Word制作公司流程图   效果图: 1、新建一张Word文档,选择插入Smart,打开选择Smart图形对话框,选择层次结构,选择一种结构图。现在你就可以看到结构图了。 2、在Smart样式中,选择一种样式,单击设计更改颜色选择一种颜色模式,现在我们就制作好了模型。 3、现在选择第一级图标,...

经验教程

120

收藏

65
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部