短信加密设计思路.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.1 设计思路 1.1.1 界面设计思路 本设计根据前面理论的分析,从信息加密与隐藏两个主要方面着手,将两大块分开进行独立设计,做成不同的功能界面,每部分功能又都分别包括了对文本文件和图片文件的操作。为了方便操作与演示,因此在界面设计上不用很复杂,只需要用有限的几个控件来实现不同的功能,通过某个控件选择不同的文件,再通过相应的按钮对所选文件进行不同操作。 1.1.2 信息加密设计思路 在实现对文本文件的加密与解密时,将文件内容固定为非中文字符,即常用的ASCII字符,并采用对称加密算法来实现,算法选择用自己编写的简单的位操作算法,且将密钥固定为已知值。 1.1.3 信息隐藏设计思路 在实现对图片文件的信息隐藏与提取时,采用基于数字水印的技术,图片格式固定为.BMP格式的文件,隐藏的过程就是通过在所选的图片中嵌入其他的图片,并在图片中加入特殊的信息,而验证的过程就是对图片中的特殊信息进行提取,如果包含有特殊信息,则说明已对文件进行信息隐藏,验证成功后将隐藏在载体文件中的图片信息显示出来。 1.2 设计流程 1.2.1 信息加密流程 文本文件的内容是由可见ASCII字符组成,每个ASCII字符都有对应的字符值,在对其进行加密时,可采用对称加密算法,对每个字符值进行某一范围内的规律变换,变换后字符显示会与原先的字符不一样,如此循环的对每个字符进行相同操作,就可将明文信息变换成密文信息,最后将密文信息附加到明文信息结尾部分,生成一个新的文本文件,接着再次将整个文本文件进行加密,为的是在信息的传输中,保护信息。 详细的步骤如下: 1.选择所要加密的文本文件; 2.用对称加密算法对文本文件进行加密,生成附加信息; 3.将已经生成的附加信息添加到原明文文件后,重新生成一个新的文本文件; 4.再次对新的文本文件进行加密; 5.将整个加密文件保存保存; using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace DataCrypto { /// /// 对称加密算法类 /// public class SymmetricMethod { private SymmetricAlgorithm mobjCryptoService; private string Key; /// /// 对称加密类的构造函数 /// public SymmetricMethod() { mobjCryptoService = new RijndaelManaged(); Key = Guz(%hj7x89H$yuBI0456FtmaT5fvHUFCy76*h%(HilJ$lhj!y6(*jkP87jH7; } /// /// 获得密钥 /// /// 密钥 private byte[] GetLegalKey() { string sTemp = Key; mobjCryptoService.GenerateKey(); byte[] bytTemp = mobjCryptoService.Key; int KeyLength = bytTemp.Length; if (sTemp.Length KeyLength) sTemp = sTemp.Substring(0, KeyLength); else if (sTemp.Length KeyLength) sTemp = sTemp.PadRight(KeyLength, ); return ASCIIEncoding.ASCII.GetBytes(sTemp); } /// /// 获得初始向量IV /// /// 初试向量IV private byte[] GetLegalIV() { string sTemp = E4ghj*Ghg7!rNIfb95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7!hg4ui%$hjk; mobjCryptoService.GenerateIV(); byte[] bytTemp = mobjCryptoService.IV; int IVLength = bytTemp.Length; if (sTemp.Length IVLength) sTemp = sTemp.Substring(0, IVLength); else if (sTemp.Length IVLength) sTemp = sTemp.PadRight(IVLength, ); return ASCIIEncoding.ASCII.GetBytes(sTemp); } /// /// 加密方法 /// //

文档评论(0)

df829393 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档