C#加密和解密、哈希

慈云数据 2024-03-15 技术支持 90 0

一、加密和解密数据

C#中常用的加密算法包括:对称加密算法(如AES、DES)、非对称加密算法(如RSA)、哈希算法(如MD5、SHA)。这些算法可以通过.NET Framework或.NET Core中提供的相关类来实现。

C#加密和解密、哈希
(图片来源网络,侵删)

使用AES进行对称加密

在C#中使用AES进行对称加密通常涉及使用System.Security.Cryptography命名空间中的相关类。您需要创建一个Aes实例,设置密钥和初始化向量(IV)等参数,然后使用该实例来加密和解密数据。

C#加密和解密、哈希
(图片来源网络,侵删)

以下是一个简单的示例代码:

using System;
using System.Security.Cryptography;
using System.Text;
public class AESEncryptionExample
{
    // 使用AES对字符串进行加密并返回加密后的字节数组
    public static byte[] EncryptStringToBytes_Aes(string plainText, byte[] Key, byte[] IV)
    {
        if (plainText == null || plainText.Length 
            aesAlg.Key = Key;
            aesAlg.IV = IV;
            ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
            using (MemoryStream msEncrypt = new MemoryStream())
            {
                using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
                {
                    using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
                    {
                        swEncrypt.Write(plainText); // 将原始字符串写入加密流
                    }
                    encrypted = msEncrypt.ToArray(); // 将加密后的数据转换为字节数组
                }
            }
        }
        return encrypted;
    }
}

    public static string CalculateSHA256(string input)
    {
        using (SHA256 sha256 = SHA256.Create())
        {
            byte[] inputBytes = Encoding.UTF8.GetBytes(input);
            byte[] hashBytes = sha256.ComputeHash(inputBytes);
            StringBuilder builder = new StringBuilder();
            for (int i = 0; i 
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon