91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#WebAPI數據怎樣加密

發布時間:2024-11-24 17:28:32 來源:億速云 閱讀:81 作者:小樊 欄目:編程語言

在C# Web API中,對數據進行加密可以通過多種方式實現,包括對稱加密、非對稱加密和哈希算法等。以下是一些常見的數據加密方法:

1. 對稱加密

對稱加密使用相同的密鑰進行加密和解密。常用的對稱加密算法包括AES(高級加密標準)和DES(數據加密標準)。

使用AES加密

using System.Security.Cryptography;
using System.Text;

public static string Encrypt(string plainText, string key)
{
    byte[] iv = new byte[16];
    using (Aes aes = Aes.Create())
    {
        aes.Key = Encoding.UTF8.GetBytes(key);
        aes.IV = iv;

        using (ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV))
        {
            using (MemoryStream ms = new MemoryStream())
            {
                using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
                {
                    using (StreamWriter sw = new StreamWriter(cs))
                    {
                        sw.Write(plainText);
                    }
                    cs.Close();
                }
                iv = ms.ToArray();
            }
        }
    }
    return Convert.ToBase64String(iv) + ":" + Convert.ToBase64String(ms.ToArray());
}

public static string Decrypt(string cipherText, string key)
{
    string[] parts = cipherText.Split(':');
    byte[] iv = Convert.FromBase64String(parts[0]);
    byte[] cipherBytes = Convert.FromBase64String(parts[1]);

    using (Aes aes = Aes.Create())
    {
        aes.Key = Encoding.UTF8.GetBytes(key);
        aes.IV = iv;

        using (ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV))
        {
            using (MemoryStream ms = new MemoryStream())
            {
                using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Write))
                {
                    using (StreamReader sr = new StreamReader(cs))
                    {
                        sr.ReadToEnd();
                    }
                    cs.Close();
                }
                cipherBytes = ms.ToArray();
            }
        }
    }
    return Encoding.UTF8.GetString(cipherBytes);
}

2. 非對稱加密

非對稱加密使用一對密鑰(公鑰和私鑰)進行加密和解密。常用的非對稱加密算法包括RSA和ECC(橢圓曲線加密)。

使用RSA加密

using System.Security.Cryptography;
using System.Text;

public static string Encrypt(string plainText, RSA rsa)
{
    byte[] data = Encoding.UTF8.GetBytes(plainText);
    byte[] encryptedData = rsa.Encrypt(data, RSAEncryptionPadding.Pkcs1);
    return Convert.ToBase64String(encryptedData);
}

public static string Decrypt(string cipherText, RSA rsa)
{
    byte[] encryptedData = Convert.FromBase64String(cipherText);
    byte[] decryptedData = rsa.Decrypt(encryptedData, RSAEncryptionPadding.Pkcs1);
    return Encoding.UTF8.GetString(decryptedData);
}

3. 哈希算法

哈希算法用于生成數據的固定長度的摘要,常用于驗證數據的完整性。常用的哈希算法包括SHA-256和SHA-512。

使用SHA-256哈希

using System.Security.Cryptography;
using System.Text;

public static string Hash(string plainText)
{
    using (SHA256 sha256 = SHA256.Create())
    {
        byte[] data = sha256.ComputeHash(Encoding.UTF8.GetBytes(plainText));
        return BitConverter.ToString(data).Replace("-", "").ToLower();
    }
}

4. 在Web API中使用加密數據

在Web API中,可以使用上述加密方法對數據進行加密,并將加密后的數據作為響應返回。客戶端在接收數據后,可以使用相應的解密方法進行解密。

示例:加密并返回數據

[ApiController]
[Route("api/[controller]")]
public class DataController : ControllerBase
{
    [HttpGet("encrypt")]
    public IActionResult EncryptData()
    {
        string plainText = "Sensitive data";
        string key = "YourEncryptionKey";

        string encryptedText = Encrypt(plainText, key);
        return Ok(encryptedText);
    }
}

示例:解密并驗證數據

[ApiController]
[Route("api/[controller]")]
public class DataController : ControllerBase
{
    [HttpPost("decrypt")]
    public IActionResult DecryptData([FromBody] string encryptedText)
    {
        string key = "YourEncryptionKey";

        string decryptedText = Decrypt(encryptedText, key);
        return Ok(decryptedText);
    }
}

通過上述方法,可以在C# Web API中對數據進行有效的加密和保護。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

济阳县| 洪洞县| 昌邑市| 西充县| 葵青区| 东乌珠穆沁旗| 乌审旗| 大洼县| 五家渠市| 海口市| 宁阳县| 广宗县| 南召县| 和田市| 阜阳市| 会泽县| 苏尼特右旗| 永吉县| 句容市| 龙门县| 民勤县| 突泉县| 洛宁县| 马尔康县| 新疆| 铜山县| 荥经县| 沾益县| 巴楚县| 临夏市| 呼图壁县| 嵩明县| 黄冈市| 赣州市| 铜陵市| 呼伦贝尔市| 丰台区| 湟源县| 兴山县| 甘肃省| 余江县|