我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何浅析.NET C# DES

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何浅析.NET C# DES

今天就跟大家聊聊有关如何浅析.NET C# DES,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

C# DES加密应该是最基础的加密算法,为了搞清楚它在.NET C#里面的用法,我费了不少功夫,希望有心人能看到。C# DES一共就有4个参数参与运作:明文、密文、密钥、向量。为了初学者容易理解,可以把4个参数的关系写成:密文=明文+密钥+向量;明文=密文-密钥-向量。为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复,那么这个词加上密钥形成的密文,仍然会重复,这给破解者有机可乘,破解者可以根据重复的内容,猜出是什么词,然而一旦猜对这个词,那么,他就能算出密钥,整篇文章就被破解了!加上向量这个参数以后,每块文字段都会依次加上一段值,这样,即使相同的文字,加密出来的密文,也是不一样的,算法的安全性大大提高!

下面C# DES的应用实例:

 using System;  //这个是使用DES的基础  using System.Security.Cryptography;  //这个是处理文字编码的前提  using System.Text;  //以“流”的形式处理文字,也是微软DES算法要求的  using System.IO;  ///  /// C# DES加密方法  ///  /// 明文 /// 密钥 /// 向量 /// 密文 public string DESEncrypt(string strPlain,  string strDESKey,string strDESIV)  {   //把密钥转换成字节数组   byte[] bytesDESKey=ASCIIEncoding.ASCII.GetBytes(strDESKey);   //把向量转换成字节数组   byte[] bytesDESIV=ASCIIEncoding.ASCII.GetBytes(strDESIV);   //声明1个新的DES对象   DESCryptoServiceProvider desEncrypt=new DESCryptoServiceProvider();   //开辟一块内存流   MemoryStream msEncrypt=new MemoryStream();   //把内存流对象包装成加密流对象   CryptoStream csEncrypt=new CryptoStream(  msEncrypt,desEncrypt.CreateEncryptor(  bytesDESKey,bytesDESIV),CryptoStreamMode.Write);   //把加密流对象包装成写入流对象   StreamWriter swEncrypt=new StreamWriter(csEncrypt);   //写入流对象写入明文   swEncrypt.WriteLine(strPlain);   //写入流关闭   swEncrypt.Close();   //加密流关闭   csEncrypt.Close();   //把内存流转换成字节数组,内存流现在已经是密文了   byte[] bytesCipher=msEncrypt.ToArray();   //内存流关闭   msEncrypt.Close();   //把密文字节数组转换为字符串,并返回   return UnicodeEncoding.Unicode.GetString(bytesCipher);  }  ///  /// C# DES解密方法  ///  /// 密文 /// 密钥 /// 向量 /// 明文 public string DESDecrypt(string strCipher,  string strDESKey,string strDESIV)  {   //把密钥转换成字节数组   byte[] bytesDESKey=ASCIIEncoding.ASCII.GetBytes(strDESKey);   //把向量转换成字节数组   byte[] bytesDESIV=ASCIIEncoding.ASCII.GetBytes(strDESIV);   //把密文转换成字节数组   byte[] bytesCipher=UnicodeEncoding.Unicode.GetBytes(strCipher);   //声明1个新的DES对象   DESCryptoServiceProvider desDecrypt=new DESCryptoServiceProvider();   //开辟一块内存流,并存放密文字节数组   MemoryStream msDecrypt=new MemoryStream(bytesCipher);   //把内存流对象包装成解密流对象   CryptoStream csDecrypt=new CryptoStream(  msDecrypt,desDecrypt.CreateDecryptor(  bytesDESKey,bytesDESIV),CryptoStreamMode.Read);   //把解密流对象包装成读出流对象   StreamReader srDecrypt=new StreamReader(csDecrypt);   //明文=读出流的读出内容   string strPlainText=srDecrypt.ReadLine();   //读出流关闭   srDecrypt.Close();   //解密流关闭   csDecrypt.Close();   //内存流关闭   msDecrypt.Close();   //返回明文   return strPlainText;  }

看完上述内容,你们对如何浅析.NET C# DES有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何浅析.NET C# DES

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何浅析.NET C# DES

今天就跟大家聊聊有关如何浅析.NET C# DES,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C# DES加密应该是最基础的加密算法,为了搞清楚它在.NET C#里面的用法,我费了
2023-06-17

如何浅析C++中的C++堆栈

这篇文章给大家介绍如何浅析C++中的C++堆栈,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。想要学好C++的C++堆栈,那么就要了解什么是C++堆栈,所为C++堆栈就是一种数据项按序排列的数据结构,只能在一端(称为栈顶
2023-06-17

如何浅析.NET写入文本文件的操作

这篇文章将为大家详细讲解有关如何浅析.NET写入文本文件的操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。.NET写入文本文件的操作时需要注意注意 Visual Basic 用户可以选择
2023-06-17

如何浅析C# FTP WebRequest对象

这篇文章将为大家详细讲解有关如何浅析C# FTP WebRequest对象,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C# FTP WebRequest对象微软的.NET framewor
2023-06-17

如何理解C#DES加密解密的实现

这篇文章将为大家详细讲解有关如何理解C#DES加密解密的实现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C# DES加密解密的实现,DES算法为密码体制中的对称密码体制,由IBM公司研制的
2023-06-17

c语言如何实现DES加密解密

这篇文章主要介绍了c语言如何实现DES加密解密问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-18

如何浅析.NET中文变量及方法的命名规则

这期内容当中小编将会给大家带来有关如何浅析.NET中文变量及方法的命名规则,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。我们将介绍.NET中文变量及方法的命名规则,相信通过规范的.NET中文变量及方法的命
2023-06-17

C#.NET如何绑定Office

这篇文章主要介绍了C#.NET如何绑定Office,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。C#.NET绑定Office晚期绑定与早期绑定不同,C#.NET绑定Offic
2023-06-17

C#.NET如何操作XML

小编给大家分享一下C#.NET如何操作XML,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!如何让C#.NET操作XML?需要添加的命名空间:using System.Xml;要完成C#.NET操作XML,首先定义几个公共对
2023-06-18

如何浅析C++类访问控制问题

本篇文章给大家分享的是有关如何浅析C++类访问控制问题,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在介绍C++类之前,首先要了解下什么是C++类?其实C++类是将数据成员和进
2023-06-17

浅析C++如何跨模块释放内存

跨模块释放内存需要考虑内存空间不可直接访问的情况。方法包括:指针传递(传递指针释放内存)、智能指针(自动释放内存)、全局变量(定义释放函数释放内存)、事件和信号(通过事件或信号触发释放)。注意释放顺序正确性、所有权和共享问题,并根据场景选择合适方法。
浅析C++如何跨模块释放内存
2024-04-02

如何浅析C++仿函数的基本概念

这期内容当中小编将会给大家带来有关如何浅析C++仿函数的基本概念,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C++编程语言为我们带来了非常大的好处。不过即使是我们经常使用的功能也有很多比较高深的内容值得
2023-06-17

C++浅析数据在内存中如何存储

使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。您可能需要存储各种数据类型的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么
2022-11-13

C语言如何利用DES模块实现加密功能

这篇文章主要讲解了“C语言如何利用DES模块实现加密功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言如何利用DES模块实现加密功能”吧!DES(Data Encryption Sta
2023-06-17

如何浅析C#打印和C#打印预览的实现

如何浅析C#打印和C#打印预览的实现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们谈到C#打印和C#打印预览的实现其中主要就是包括:页面设置、打印预览、打印
2023-06-17

如何浅析C++程序监视Windows事件日志

如何浅析C++程序监视Windows事件日志,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。主要讲述如何使用C++程序中监视Windows事件日志,还可以对程序进
2023-06-17

早期C#.NET如何绑定Office

小编给大家分享一下早期C#.NET如何绑定Office,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!早期C#.NET绑定Office采用早期绑定时,Visual
2023-06-17

浅析github如何使用

GitHub是一个全球领先的开源协作社区和版本控制平台,它为用户提供了一种方便、高效的管理代码和合作的方式。在这篇文章中,我们将会介绍如何使用GitHub。创建一个GitHub账号首先,我们需要注册一个GitHub账号,这可以通过访问Git
2023-10-22

如何解析.NET三层架构

如何解析.NET三层架构,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。所谓三层架构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录