根据提供的文件信息,我们可以从中提炼出两个主要的知识点:一是关于DES加密解密技术的应用;二是关于WPF中实现转圈圈动画的方法。下面将分别对这两个知识点进行详细阐述。 ### DES加密解密 #### 1. DES简介 数据加密标准(Data Encryption Standard,简称DES)是一种对称加密算法,由IBM开发,并于1977年被美国国家标准局(ANSI)采纳为官方标准。DES使用56位密钥对64位数据块进行加密。尽管随着计算机处理能力的发展,DES的安全性已经不再被视为足够强,但它仍然是理解对称加密原理的一个很好的例子。 #### 2. DES加密解密过程 在提供的代码片段中,`DesUser` 和 `DesPass` 方法展示了如何使用 `DESCryptoServiceProvider` 类来执行DES加密操作。具体步骤如下: - 创建一个 `DESCryptoServiceProvider` 实例。 - 使用ASCII编码将密钥转换为字节数组。 - 创建一个 `MemoryStream` 用于存储加密后的数据。 - 创建一个 `CryptoStream`,使用 `CreateEncryptor()` 方法指定加密器。 - 将原始数据写入 `CryptoStream` 进行加密。 - 使用 `FlushFinalBlock()` 方法完成加密过程并获取加密后的数据。 - 遍历加密后的字节数组,并将其格式化为十六进制字符串。 值得注意的是,这两个方法实际上是相同的,因此可以合并为一个方法,并通过参数区分加密和解密的过程。 #### 3. 解密过程 解密过程与加密过程类似,但需要调用 `CreateDecryptor()` 方法来创建解密器。解密方法 `Decode` 在提供的代码中没有完整展示,但是根据上下文可以推断其基本流程如下: - 创建一个新的 `DESCryptoServiceProvider` 实例。 - 使用ASCII编码将密钥转换为字节数组。 - 创建一个 `MemoryStream` 来加载加密后的数据。 - 创建一个 `CryptoStream`,这次使用 `CreateDecryptor()` 方法指定解密器。 - 读取加密后的数据并进行解密。 - 将解密后的字节数组转换回原始字符串。 ### WPF中的转圈圈动画 #### 1. WPF简介 Windows Presentation Foundation(WPF)是微软推出的一种用于构建用户界面的技术,它提供了丰富的图形渲染能力和动画支持,使得开发者能够轻松创建复杂的UI元素。 #### 2. 实现转圈圈动画 虽然提供的代码片段中没有具体的WPF动画实现,但是可以概述一种通用的方法来实现转圈圈动画: - 定义一个UI元素,例如一个圆形。 - 使用 `Storyboard` 和 `DoubleAnimationUsingKeyFrames` 控件定义动画的关键帧。 - 设置动画的属性,如 `Duration`、`To`(最终角度)、`RepeatBehavior`(重复次数)等。 - 将动画绑定到UI元素的 `RenderTransform` 属性上,通常使用 `RotateTransform` 来实现旋转效果。 - 开始播放动画。 ### 总结 通过对提供的代码片段分析,我们了解了如何使用C#语言在.NET Framework中实现DES加密解密操作,同时也简要介绍了如何在WPF中实现转圈圈动画。这些知识点对于理解对称加密算法的实际应用以及WPF的动画机制都非常有帮助。











using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace Framework.Utils.Datahelper
{
public class Des
{
/// <summary>
/// <![CDATA[用户名加密的函数]]>
/// </summary>
/// <param name="EncryptString1"></param>
/// <param name="EncryptKey"></param>
/// <returns><![CDATA[用户名加密后的字符串]]></returns>
public static string DesUser(string EncryptString1, string EncryptKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(EncryptString1);
des.Key = ASCIIEncoding.ASCII.GetBytes(EncryptKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(EncryptKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret1 = new StringBuilder();
foreach (byte b in ms.ToArray())
{
}
ret1.ToString();
return ret1.ToString();//返回加密结果
}
/// <summary>
/// <![CDATA[密码加密的函数]]>
/// </summary>
/// <param name="EncryptString1"></param>
/// <param name="EncryptKey"></param>
/// <returns><![CDATA[密码加密后字符串]]></returns>
public static string DesPass(string EncryptString1, string EncryptKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(EncryptString1);
des.Key = ASCIIEncoding.ASCII.GetBytes(EncryptKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(EncryptKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret1 = new StringBuilder();
foreach (byte b in ms.ToArray())
{
ret1.AppendFormat("{0:X2}", b);
}
ret1.ToString();
return ret1.ToString();
}
剩余6页未读,继续阅读


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于单片机的数据中心空调故障预判系统设计.docx
- 信息化建设半年工作总结及下半年工作计划.doc
- 云计算关键技术及发展态势.docx
- 嵌入式设计方案—供暖水压水温检测(老冯).doc
- 基于机器学习的贷款欺诈预测研究和应用.docx
- 软件工程课后参考答案.doc
- PLC课程设计报告-全自动洗衣机.doc
- 网络安全知识讲座网民安全.ppt
- 电气自动化设计方案PLC交通灯.doc
- 信息系统项目管理师(高级)学习资料大全.doc
- 铁路通信光缆工程施工技术.docx
- XGBoost算法在制造业质量预测中的应用.docx
- 单片机及GPS器件的定位与测量系统方案设计课程方案设计.doc
- 互联网背景下学校图书资料的信息化管理策略.docx
- 网络监控技术方案概述-企业工厂.docx
- 数据集精度及容差设置方法.doc


