引言在当今数字时代,网络安全已成为一个至关重要的话题。C作为一种强大的编程语言,提供了丰富的加密库,使得开发者能够轻松地实现数据加密和解密。本文将深入探讨C中的加密核心技术,帮助开发者更好地理解和应用...
在当今数字时代,网络安全已成为一个至关重要的话题。C#作为一种强大的编程语言,提供了丰富的加密库,使得开发者能够轻松地实现数据加密和解密。本文将深入探讨C#中的加密核心技术,帮助开发者更好地理解和应用这些技术。
加密是一种将数据转换为不可读形式的过程,只有拥有正确密钥的用户才能将其转换回原始数据。C#提供了多种加密算法,包括对称加密、非对称加密和哈希函数。
C#提供了System.Security.Cryptography命名空间,其中包含了丰富的加密类和接口。
using System;
using System.Security.Cryptography;
using System.Text;
public class SymmetricEncryption
{ public static string EncryptAES(string plainText, string key) { var aes = Aes.Create(); aes.Key = Encoding.UTF8.GetBytes(key); aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; var iv = aes.IV; var encryptor = aes.CreateEncryptor(aes.Key, aes.IV); var bytes = Encoding.UTF8.GetBytes(plainText); using (var ms = new System.IO.MemoryStream()) { using (var cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write)) { cs.Write(bytes, 0, bytes.Length); } return Convert.ToBase64String(ms.ToArray()); } } public static string DecryptAES(string cipherText, string key) { var aes = Aes.Create(); aes.Key = Encoding.UTF8.GetBytes(key); aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; var iv = aes.IV; var decryptor = aes.CreateDecryptor(aes.Key, aes.IV); var bytes = Convert.FromBase64String(cipherText); using (var ms = new System.IO.MemoryStream()) { using (var cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read)) { cs.Read(bytes, 0, bytes.Length); } return Encoding.UTF8.GetString(ms.ToArray()); } }
}using System;
using System.Security.Cryptography;
using System.Text;
public class SymmetricEncryption
{ public static string EncryptDES(string plainText, string key) { var des = new DESCryptoServiceProvider(); des.Key = Encoding.UTF8.GetBytes(key); des.Mode = CipherMode.ECB; des.Padding = PaddingMode.PKCS7; var bytes = Encoding.UTF8.GetBytes(plainText); using (var ms = new System.IO.MemoryStream()) { using (var cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write)) { cs.Write(bytes, 0, bytes.Length); } return Convert.ToBase64String(ms.ToArray()); } } public static string DecryptDES(string cipherText, string key) { var des = new DESCryptoServiceProvider(); des.Key = Encoding.UTF8.GetBytes(key); des.Mode = CipherMode.ECB; des.Padding = PaddingMode.PKCS7; var bytes = Convert.FromBase64String(cipherText); using (var ms = new System.IO.MemoryStream()) { using (var cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read)) { cs.Read(bytes, 0, bytes.Length); } return Encoding.UTF8.GetString(ms.ToArray()); } }
}using System;
using System.Security.Cryptography;
using System.Text;
public class AsymmetricEncryption
{ public static string EncryptRSA(string plainText, string publicKey) { using (var rsa = new RSACryptoServiceProvider()) { rsa.FromXmlString(publicKey); var bytes = Encoding.UTF8.GetBytes(plainText); var encryptedBytes = rsa.Encrypt(bytes, true); return Convert.ToBase64String(encryptedBytes); } } public static string DecryptRSA(string cipherText, string privateKey) { using (var rsa = new RSACryptoServiceProvider()) { rsa.FromXmlString(privateKey); var bytes = Convert.FromBase64String(cipherText); var decryptedBytes = rsa.Decrypt(bytes, true); return Encoding.UTF8.GetString(decryptedBytes); } }
}using System;
using System.Security.Cryptography;
using System.Text;
public class Hashing
{ public static string GetSHA256(string input) { using (var sha256 = SHA256.Create()) { var bytes = Encoding.UTF8.GetBytes(input); var hash = sha256.ComputeHash(bytes); return Convert.ToBase64String(hash); } }
}本文深入探讨了C#中的加密核心技术,包括对称加密、非对称加密和哈希函数。通过学习这些技术,开发者可以更好地保护应用程序中的敏感数据。在实际应用中,应根据具体需求选择合适的加密算法和密钥管理策略,以确保数据的安全性。