如何在FormView的绑定标签中正确显示解密的文本

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

我正在使用 CryptoJS 加密敏感字段并将加密值写入数据库。这效果很好。但现在我想使用 javascript CryptoJS.AES.decrypt 方法解密该值并将该值显示到 FormView 中名为“FvActions”的绑定标签。

Show_Decrypt 函数采用三个参数。参数1是从中获取密文的控件名称,并将解密值写入其中。参数2是密文,参数3是CryptoJS用于解密的密钥。这是标签中的 JavaScript:

        function Show_Decrypt(tx, str, key) {
        var t = "#" + tx;
        var s = str.toString();
        var ky = key.toString();
      
        var decrypted = CryptoJS.AES.decrypt(s.toString(), ky.toString());
        $(t).innerHTML = decrypted;
    }

现在这是 Formview 代码

Private Sub fvactions_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles fvactions.ItemDataBound

    Dim lbl As Label = e.Item.FindControl("ptLabel")
        Dim epcrlbl As Label = e.Item.FindControl("Lblepcr")
    ScriptManager.RegisterStartupScript(Me, Me.GetType(), "keyLicDtlz", "Show_Decrypt('" & lbl.ClientID.ToString & "','" & lbl.Text.Trim & "','" & epcrlbl.Text.Trim & "');", True)


End Sub

我可以在控制台中看到参数正在传递给函数,但是显示以下错误。 未捕获的语法错误:无效或意外的标记 该错误似乎是在传入参数 #2 中的“+”号处生成的。 Show_Decrypt('ContentPlaceHolder1_fvactions_ptLabel_0','U2FsdGVkX1+6tq8s40Z63HaZMOmvUpeYioFwZMFG9Ps=','CF777');Show_Decrypt(ContentPlaceHolder1_fvactions_ptLabel_0,U2FsdGVkX1+6tq8s40Z63HaZMO mvUpeYioFwZMFG9Ps=,CF777);

我希望我已经提供了足够的信息。请帮忙。

javascript asp.net encryption databound
1个回答
0
投票

想通了!

我必须使用 string.replace() 函数来替换导致意外令牌问题的特殊字符,然后在调用解密函数时将特殊字符替换回来。

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