技术文摘
C#中DES算法加密解密实例剖析
2025-01-02 02:42:55 小编
C#中DES算法加密解密实例剖析
在当今数字化时代,数据安全至关重要。加密算法作为保护数据隐私的关键技术,被广泛应用于各个领域。其中,DES(Data Encryption Standard)算法是一种对称加密算法,具有高效、可靠的特点。本文将通过一个C#实例来深入剖析DES算法的加密和解密过程。
我们需要了解DES算法的基本原理。DES算法使用相同的密钥进行加密和解密,它将数据分成64位的块,并通过一系列复杂的置换、替换和异或操作来实现加密。密钥长度为56位,加上8位的奇偶校验位,总共64位。
在C#中实现DES算法加密解密,需要使用System.Security.Cryptography命名空间下的相关类。以下是一个简单的示例代码:
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
string originalText = "Hello, World!";
string key = "12345678";
byte[] encryptedBytes = Encrypt(originalText, key);
string decryptedText = Decrypt(encryptedBytes, key);
Console.WriteLine("原始文本: " + originalText);
Console.WriteLine("加密后的数据: " + Convert.ToBase64String(encryptedBytes));
Console.WriteLine("解密后的文本: " + decryptedText);
}
static byte[] Encrypt(string plainText, string key)
{
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
des.Key = Encoding.UTF8.GetBytes(key);
des.IV = Encoding.UTF8.GetBytes(key);
using (ICryptoTransform encryptor = des.CreateEncryptor())
{
byte[] inputBytes = Encoding.UTF8.GetBytes(plainText);
return encryptor.TransformFinalBlock(inputBytes, 0, inputBytes.Length);
}
}
}
static string Decrypt(byte[] encryptedBytes, string key)
{
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
des.Key = Encoding.UTF8.GetBytes(key);
des.IV = Encoding.UTF8.GetBytes(key);
using (ICryptoTransform decryptor = des.CreateDecryptor())
{
byte[] decryptedBytes = decryptor.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);
return Encoding.UTF8.GetString(decryptedBytes);
}
}
}
}
在上述代码中,我们首先定义了原始文本和密钥。然后,通过Encrypt方法对原始文本进行加密,得到加密后的数据。最后,使用Decrypt方法对加密后的数据进行解密,恢复原始文本。
通过这个实例,我们可以看到DES算法在C#中的具体应用。在实际开发中,我们可以根据需求对代码进行进一步优化和扩展,以满足不同的安全需求。
- Mac 系统当前版本新功能如何查看?查看 macOS 新功能的技巧
- Mac 系统图书自动插入连字符的方法及输入不间断连字符的技巧
- MacOS 系统闲置时间的设置方法及 Mac 屏幕闲置时间修改教程
- Windows 银行木马 Dridex 拓展攻击面 涵盖苹果 macOS 平台
- 如何进入 Mac 安全模式?Mac 系统安全模式进入方法
- MAC 截图如何保存至相册?方法在此
- MAC 退出 Apple ID 账号的方法
- Mac 版 steam 错误代码 118 的解决方法教程
- Mac 连接蓝牙耳机的方法与教程
- 苹果 Mac 序列号的查看方法
- Mac 电脑 Steam 社区无法打开的解决之道
- Mac 电脑 steam 错误代码 101 的解决办法 苹果电脑 steam 错误代码 101 处理教程
- 微软揭示苹果 macOS 存在可植入恶意软件的漏洞
- Mac 以太网卡速度的查看方法与技巧
- Mac 系统电脑中 Siri 听写历史记录的相关介绍及删除技巧