簡體   English   中英

C# 中的加密和 javascript 中使用 AES 算法的解密

[英]Encryption in C# and Decryption in javascript with AES Algorithm

我正在嘗試解密 JavaScript 中的字符串,該字符串是在 C# 應用程序中使用 AES 256 算法加密的。 加密和解密代碼如下 我可以在 C# 應用程序中解密字符串。 我使用以下代碼解密字符串 JavaScript 但我無法解密

public string Encrypt(string content)
    {
        if (string.IsNullOrEmpty(content))
        {
            throw new ArgumentNullException("content");
        }

        byte[] encryptedData = null;

        try
        {

            using (AesCryptoServiceProvider aesMod = new AesCryptoServiceProvider())
            {
                //Set the key manullay to predefined values
                aesMod.Key = m_Key;
                aesMod.IV = m_IV;


                ICryptoTransform encryptor = aesMod.CreateEncryptor(aesMod.Key, aesMod.IV);

                // Create the streams used for encryption.
                using (MemoryStream memstreamEncrypt = new MemoryStream())
                {
                    using (CryptoStream csEncrypt = new CryptoStream(memstreamEncrypt, encryptor, CryptoStreamMode.Write))
                    {
                        using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
                        {
                            //Writing data to the stream.
                            swEncrypt.Write(content);
                        }
                        encryptedData = memstreamEncrypt.ToArray();
                    }
                }
            }
            return Convert.ToBase64String(encryptedData);
        }
        catch (Exception ex)
        {
            throw new Exception("Exception in Encrypting .", ex);
        }
    }



<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
                <script>

                      function decryptMessage(encryptedMessage = '', secretkey = ''){

                            var cipherParams = CryptoJS.lib.CipherParams.create({
                                ciphertext: CryptoJS.enc.Base64.parse(encryptedMessage)
                            });

                            var decrypted = CryptoJS.AES.decrypt(cipherParams, secretkey);
                            var decryptedMessage = decrypted.toString(CryptoJS.enc.Utf8);

                            return decryptedMessage;


                }
 </script>

問題可能是 C# 中的字符串以UTF-16編碼 如果可能,嘗試更改 JavaScript 代碼中的編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM