在VB.NET中加密Rijndael在Javascript CryptoJS中管理和解密

时间:2017-11-17 13:27:27

标签: javascript vb.net encryption aes cryptojs

我正在制作一个必须解密QRs的应用程序......它没有,因为我得到了QR字符串,但我无法解密它。

我在VB.NET中使用这种加密方法,当我从VB.NET读取解密时它非常有效:

Private Function GetCodedQR(ByVal str As String) As String
    Dim sToEncrypt As String = str

    Dim encrypted() As Byte
    ' Create an Rijndael object
    ' with the specified key and IV.
    Using rijAlg = Rijndael.Create()

        rijAlg.Padding = PaddingMode.Zeros
        rijAlg.Mode = CipherMode.CBC
        rijAlg.KeySize = 256
        rijAlg.BlockSize = 256
        rijAlg.Key = System.Text.Encoding.ASCII.GetBytes("12345678912345678912345678912345")
        rijAlg.IV = System.Text.Encoding.ASCII.GetBytes("123452hheeyy66#cs!9hjv887mxx7@8y")

        ' Create an encryptor to perform the stream transform.
        Dim encryptor As ICryptoTransform = rijAlg.CreateEncryptor(rijAlg.Key, rijAlg.IV)
        ' Create the streams used for encryption.
        Using msEncrypt As New MemoryStream()
            Using csEncrypt As New CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)
                Using swEncrypt As New StreamWriter(csEncrypt)

                    'Write all data to the stream.
                    swEncrypt.Write(sToEncrypt)
                End Using
                encrypted = msEncrypt.ToArray()
            End Using
        End Using
    End Using

    sToEncrypt = Convert.ToBase64String(encrypted)

    Return sToEncrypt
End Function

但是当我使用JS(CryptoJS)来解密消息时它就不起作用了!

var iv = CryptoJS.enc.Utf8.parse('123452hheeyy66#cs!9hjv887mxx7@8y');
var decrypted = CryptoJS.AES.decrypt(encrypted, '12345678912345678912345678912345', { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding });

请帮助我,我尽我所能,但JS不是我的事。

0 个答案:

没有答案