ホームページ >バックエンド開発 >C++ >RijndaelManagedを使用してC#で文字列を暗号化および復号化する方法は?

RijndaelManagedを使用してC#で文字列を暗号化および復号化する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2025-02-02 17:01:09358ブラウズ

c#では、rijndaelmanagedアルゴリズムの暗号化と汚れた文字列の詳細な説明を使用します

How to Encrypt and Decrypt Strings in C# Using RijndaelManaged?
この記事では、文字列を暗号化して復号化するために、c#でrijndaelmanagedアルゴリズムを使用する方法を詳細に紹介します。

暗号化プロセス

まず、命名スペースを導入する必要があります。次のコードフラグメントは、rijndaelmanagedアルゴリズムと複雑な文字列を使用する方法を示しています。

復号化プロセスSystem.Security.Cryptography

<code class="language-csharp">using System.Security.Cryptography;

public class Encryption
{
    // 使用RijndaelManaged算法加密字符串
    public string EncryptString(string plainText, string sharedSecret)
    {
        // 从共享密钥和salt生成密钥
        Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(sharedSecret, _salt);

        // 创建RijndaelManaged对象
        RijndaelManaged aesAlg = new RijndaelManaged();
        aesAlg.Key = key.GetBytes(aesAlg.KeySize / 8);

        // 创建加密器
        ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);

        // 创建内存流来保存加密数据
        using (MemoryStream msEncrypt = new MemoryStream())
        {
            // 将IV写入流
            msEncrypt.Write(BitConverter.GetBytes(aesAlg.IV.Length), 0, sizeof(int));
            msEncrypt.Write(aesAlg.IV, 0, aesAlg.IV.Length);

            // 加密数据
            using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
            {
                using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
                {
                    swEncrypt.Write(plainText);
                }
            }

            // 将加密数据转换为base64字符串
            return Convert.ToBase64String(msEncrypt.ToArray());
        }
    }
}</code>
復号化と暗号化文字列は、暗号化されたときと同じ共有キーを使用する必要があります。次のコードフラグメントは、同じrijndaelmanagedアルゴリズム文字列を使用する方法を示しています。

セキュリティを強化するためのコードのバイト配列として定義する必要があることに注意してください。 完全なコードには、メソッドの実装も含める必要があります。 強力な共有キーを選択することはセキュリティに不可欠であることを忘れないでください。

以上がRijndaelManagedを使用してC#で文字列を暗号化および復号化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。