亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

紫金县| 乐清市| 侯马市| 湖州市| 本溪市| 嘉兴市| 长治市| 米泉市| 永修县| 额敏县| 普格县| 台安县| 马龙县| 乌兰浩特市| 大姚县| 临沭县| 和静县| 翁牛特旗| 贵阳市| 五大连池市| 宁陕县| 南汇区| 兰考县| 江津市| 武宣县| 惠来县| 彭山县| 诸城市| 华亭县| 社旗县| 湛江市| 宁乡县| 鹰潭市| 麟游县| 即墨市| 温州市| 通江县| 翁牛特旗| 丽江市| 临朐县| 时尚|