首页 > 语言 > 关键词 > .NET中最新资讯 > 正文

浅谈.NET中加密和解密的实现方法

2008-10-31 10:43 · 稿源:中国IT实验室

.NET将原来独立的API和SDK合并到一个框架中,这对于程序开发人员非常有利。它将CryptoAPI改编进.NET的System.Security.Cryptography名字空间,使密码服务摆脱了SDK平台的神秘性,变成了简单的.NET名字空间的使用。由于随着整个框架组件一起共享,密码服务更容易实现了,现在仅仅需要学习System.Security.Cryptography名字空间的功能和用于解决特定方案的类。

加密和解密的算法

System.Security.Cryptography名字空间包含了实现安全方案的类,例如加密和解密数据、管理密钥、验证数据的完整性并确保数据没有被篡改等等。本文重点讨论加密和解密。

加密和解密的算法分为对称(symmetric)算法和不对称(asymmetric)算法。对称算法在加密和解密数据时使用相同的密钥和初始化矢量,典型的有DES、 TripleDES和Rijndael算法,它适用于不需要传递密钥的情况,主要用于本地文档或数据的加密。不对称算法有两个不同的密钥,分别是公共密钥和私有密钥,公共密钥在网络中传递,用于加密数据,而私有密钥用于解密数据。不对称算法主要有RSA、DSA等,主要用于网络数据的加密。

加密和解密本地文档

下面的例子是加密和解密本地文本,使用的是Rijndael对称算法。

对称算法在数据流通过时对它进行加密。因此首先需要建立一个正常的流(例如I/O流)。文章使用FileStream类将文本文件读入字节数组,也使用该类作为输出机制。

接下来定义相应的对象变量。在定义SymmetricAlgorithm抽象类的对象变量时我们可以指定任何一种对称加密算法提供程序。代码使用的是Rijndael算法,但是很容易改为DES或者TripleDES算法。.NET使用强大的随机密钥设置了提供程序的实例,选择自己的密钥是比较危险的,接受计算机产生的密钥是一个更好的选择,文中的代码使用的是计算机产生的密钥。

下一步,算法实例提供了一个对象来执行实际数据传输。每种算法都有CreateEncryptor和CreateDecryptor两个方法,它们返回实现ICryptoTransform接口的对象。

最后,现在使用BinaryReader的ReadBytes方法读取源文件,它会返回一个字节数组。BinaryReader读取源文件的输入流,在作为CryptoStream.Write方法的参数时调用ReadBytes方法。指定的CryptoStream实例被告知它应该操作的下层流,该对象将执行数据传递,无论流的目的是读或者写。

下面是加密和解密一个文本文件的源程序片断:

以下为引用的内容:

  namespace com.billdawson.crypto

  {

  class TextFileCrypt

  {

  public static void Main(string[] args)

  {

  string file = args[0];

  string tempfile = Path.GetTempFileName();

  //打开指定的文件

  FileStream fsIn = File.Open(file,FileMode.Open,

  FileAccess.Read);

  FileStream fsOut = File.Open(tempfile, FileMode.Open,

  FileAccess.Write);

  //定义对称算法对象实例和接口

  SymmetricAlgorithm symm = new RijndaelManaged();

  ICryptoTransform transform = symm.CreateEncryptor();

  CryptoStream cstream = new CryptoStream(fsOut,transform,

  ryptoStreamMode.Write);

  BinaryReader br = new BinaryReader(fsIn);

  // 读取源文件到cryptostream

  cstream.Write(br.ReadBytes((int)fsIn.Length),0,(int)fsIn.Length);

  cstream.FlushFinalBlock();

  cstream.Close();

  fsIn.Close();

  fsOut.Close();

  Console.WriteLine("created encrypted file {0}", tempfile);

  Console.WriteLine("will now decrypt and show contents");

  // 反向操作--解密刚才加密的临时文件

  fsIn = File.Open(tempfile,FileMode.Open,FileAccess.Read);

  transform = symm.CreateDecryptor();

  cstream = new CryptoStream(fsIn,transform,

  CryptoStreamMode.Read);

  StreamReader sr = new StreamReader(cstream);

  Console.WriteLine("decrypted file text: " + sr.ReadToEnd());

  fsIn.Close();

  }

  }

  }

网友热搜:

  • 相关推荐
  • 大家在看
  • 最强蜗牛石中剑怎么拔出来 石中剑拔出来有什么用

    ​最强蜗牛中有一把石中剑,很多玩家还不清楚这个石中剑到底有什么用,怎么拔出来,下面就来为大家分享一下详细的心得。

  • Esprinet以3400万欧元收购GTI

    [TechWeb]意大利批发商Esprinet宣布已与GTI达成协议,以购买该公司100%的股份。这项行动共计3380万欧元,将在当局于9月底批准时以现金支付。通过购买GTI,Esprinet凭借收入和与Tech Data的距离本身,成为西班牙市场上第一家批发商,该公司在过去几年中一直与该公司争夺排名第一的位置。此外,GTI将提供Esprinet,该公司在西班牙经营JoséMaríaGarcía(这是一项补充业务),该业务是通过云销售的软件,尤其是Microsoft的软件。?

  • Planet将通过SpaceX的火箭发射6颗Skysat卫星

    DoNews 6月10日消息(记者 刘文轩)据The Verge报道,卫星影像公司Planet将在6月和7月的两次卫星发射中,采用SpaceX的火箭,各运送3颗110kg重的卫星。至于价格,SpaceX则是以每公斤500美元的价格来计算,Planet发射副总裁Mike Safyan表示,SpaceX将发射费用压低到“难以置信”的程度。Planet原本运营着60颗中解析度卫星,2017年收购Google的Terra Bella卫星影像部门后,Planet拥有了7颗高解析度Skysat卫星。在这之后,Planet又发射

  • 中证500指数迎来布局黄金窗口,嘉实中证500ETF获关注

    伴随着中国经济转型的加速,一大批代表新兴产业的中小盘市值股票近两年来表现异常活跃,尤其是中证500指数为代表的中小盘指数。嘉实基金作为国内较早在被动指数投资领域布局的基金管理公司,早在2013年就发行了嘉实中证500ETF,凭借较小的跟踪误差、低于同类基金的费率和较高的流动性,备受投资者们的关注。嘉实基金经过这7年多的操盘,使嘉实中证500ETF为投资者实现了良好的回报。相关数据显示,嘉实中证500ETF成立以来总回报率为

  • 人人贷10年:稳健中不断发展

    正所谓“千淘万漉虽辛苦,吹尽狂沙始到金”成功不能随随便便,万物皆有始终,只有经历过层层磨砺,才能成就真正的王者。互联网金融行业也正在经历着这样的历练与蜕变,能存活下来的平台必定是稳健发展的最终结果。已稳健运营长达近 10 年的人人贷是值得关注的范例。从 2010 年到 2020 年,人人贷用自身的坚持见证了金融科技发展的跌宕起伏,如果非要为人人贷找到一个词来形容这近 10 年的发展,那么,这个词就是“稳健”。所谓的稳

  • 微软在自家应用中启用大量广告:推荐用户使用Edge

    对于微软来说,他们正在自家的应用软件中卖力的推荐Edge浏览器,确切说是基于Chromium的Edge浏览器。现在你通过Chrome浏览器访问微软OneDrive的时候,会弹出“这是由微软推荐的全新浏览器

  • 中国明星带货史:从骂声中走向风光

    疫情暴发后,影视娱乐产业遭受巨大冲击,电商直播却发挥了自身的传播优势,成为了全国经济复苏的排头兵,全国上下都在为电商直播站台背书。

  • 日本动画电影《无限》线上首映 西瓜视频与Netflix全球同步播出

    【TechWeb】6月18日消息,今天下午6点,日本动画电影《无限》(又名《想哭的我戴上了猫的面具》)开启全球首映,在中国通过西瓜视频、抖音、今日头条平台上线。这是继BBC剧集《德古拉》后,西瓜视频再度实现与Netflix全球同步播出影视作品。届时,用户可在上述平台中付费观看该片。 公开资料显示,《无限》由日本著名导演佐藤顺一和柴山智隆联合执导,主要讲述女生笹木美代的青春奇幻故事,主打超萌轻甜治愈风格。绰号为“无限”?

  • Google开始试验在电话App中显示来电事由

    据品玩援引Engadget中文网报道,Google将在美国开始试验“Verified Calls(认证电话)”功能。通过Google认证程序的公司能事先将企业、客户的电话及来电事由传送并记录在Google专属服务器上,当企业拨打电话给客户时,客户手机上的电话App就会去服务器上比对,如果电话号码都符合的话,就会标示其为认证电话,并显示企业之前传送的来电事由。

  • B站闪退 客服回应:全屏闪退的问题已在修复中

    昨日晚间,有大量用户在社交媒体上反映称B站出现了闪退的问题,随后“B站闪退”登上微博热搜榜。对此,B站客服回应称:“关于全屏闪退的问题已在修复中,不便还请谅解”

  • 从这个失败的博客案例中可以学到的7个教训

    迈克尔·伦纳德(Michael Leonard)原本是一个公司职员,后来自己创建了一个博客,才刚赚 200 美元,他就决定辞掉 12 万美元的工作,并把精力全部投入到博客中。

  • 雷军喝星巴克 网友:中杯大杯超大杯

    6月5日消息,小米创始人、小米集团董事长兼CEO雷军发微博表示,自己喜欢星巴克、脱脂牛奶不加糖,以前是喜欢超大杯,为了控制咖啡上瘾改喝中杯。雷军自述是星巴克的老铁,考虑购买星巴克的股票

  • CF百发百中活动地址 CF百发百中气球兑换永久武器活动入口

    CF在6月16日开启了一个最新的活动——百发百中,可以获得很多永久版的武器,一些小伙伴还不清楚百发百中这个活动的地址在哪,下面就来为大家详细的介绍一下。

  • 中植系转换发展思路,让金融回归实业

    在中国经济处于转变优化的大环境下,如何才能保持平稳的发展态势,进一步获得长足发展,中植集团交出了自己的答卷,并通过中植集团自身的成功实践,为行业的发展提供了可供参考的依据。时间回到 2019 年,当时中国经济开始进入中速增长阶段。面对全新经济形势带来的挑战,中植集团应时而变,顺应时代的变化,转变自身的发展方式。将自身的发展重点从最初的金融控股集团,逐步转变为实业集团。在企业布局上,中植集团在集团托管的上

  • TikTok重申:计划将停止iOS系统中对剪贴板的访问

    著名短视频APP抖音的海外版——TikTok在本周四重申,计划停止对于iOS系统剪切板的访问。在iOS 14中,苹果加入了一项全新特性,当有应用读取剪切板内容时会发出提醒,来帮助用户更好

  • 集团年中召开中山议政会,中植系起到领头作用

    6 月 16 日,民革中央召开第二十二场中山议政会,围绕当前经济形势与对策展开座谈。如今随着疫情得到控制,关于经济的“战疫”也逐渐打响,资本市场的各大企业也都使出浑身解数,尤其是龙头企业中植系集团的项目规划也开始加速推进实施,为经济的推进做出了巨大的贡献。在这次会议中,民革中央常务副主席郑建邦出席并讲话,民革中央副主席张伯军主持会议对现阶段存在的问题各抒己见,进行了充分交流。困难并不能阻碍企业既有的发展

  • 见证历史:“blacklist”等表述将逐渐从源代码中消失!

    美国、欧洲“Black Lives Matter”运动愈演愈烈。本周消息,谷歌决定放弃 Chrome 浏览器中“blacklist(黑名单)“、“whitelist(白名单)”的用法,后续使用“blocklist”和“allowlist”来替代它们。

  • 纷杂的错题打印机品牌中,我选择了喵喵机~

    当人们说起打印机,第一想起来的就是“又笨又重”的印象,直到遇见了可爱的mini打印机——喵喵机,小巧便携的款式,色彩清新的外壳,让人爱不释手。我经常用它来打印错题、英语单词、便签等,它自带的APP还有多种功能,刚入手的时候就惊艳到我了,下面我就隆重介绍这款适合孩子学习打印的喵喵机。喵喵机于 2017 年 2 月进入市场,是一款提供错题学习服务的K12 教育智能打印机。喵喵机以其智能便携、无墨打印、1. 8 亿海量题库的特?

  • 从618的广告中,我看到了公众号电商的未来

    疫情后的首个电商大战逐渐落下帷幕。今年的 618 因为疫情的关系而万众期待,备受瞩目。各电商平台使出浑身解数,都想在这场没有硝烟的战争中占领上风。

  • 让资产缩水的疫情又能让比特币在OKEx中能值几何?

    今年,因为新冠病毒的大爆发使得全世界各地金融市场以及衍生产品的交易市场交易行情都变得晦暗不明。在这魔幻的 6 个月中,美股曾经有过一周之内四次熔断,WTI石油期货也经历了跌破为负数的考验。尽管这段时间里各国央行努力地向市场注入了大量资金,可是不难看出比特币市场对于单位交易价值五位数的突破显得有心无力。 3 月份比特币的价位曾经稍有回升的光景,这究竟是向好投资前景的预示,还是将来一直上行困难的真实写照,很多?

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议

热文

  • 3 天
  • 7天