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

问题描述 投票:0回答:1

我试图在C#应用程序中解密JavaScript中使用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>
javascript c# encryption aes
1个回答
0
投票

问题可能是C#中的字符串是以下列方式编码的 UTF-16如果可能的话,请尝试更改JavaScript代码中的编码。

© www.soinside.com 2019 - 2024. All rights reserved.