我有一个使用.netCART的网站。它在Windows Server 2003和.NET 2.0的生产中运行良好。在新服务器(Windows Server 2008)上,除了商店管理员中的信用卡解密外,一切正常。没有发送错误,没有抛出异常,只有加密的字符串输出到屏幕而不是解密的信用卡号。
Dim strCCEncrypt As String
strCCEncrypt = Trim(DataRow.Item("CreditCard"))
strCCEncrypt = tools.Decrypt(strCCEncrypt) 'tools is a .netCART utility
有没有人有.netCART的经验,或者以前见过这个问题?
编辑: 经过昨天的大量调查后,问题似乎与App Pool(在.NET 2.0上以经典管道模式运行)和Decryption相关联。任何人都可以告诉我哪些流程或服务与默认的应用程序池绑定有助于解密?
答案 0 :(得分:0)
不知道您的具体问题在哪里,但该代码段与此相同:
Dim CCEncrypt As String = tools.Decrypt(DataRow("CreditCard").ToString().Trim())
解释变化:
.Item
部分,因为它是DataRow的索引器.ToString()
.Trim()
方法而不是VB Trim()
函数。 Trim()
和其他旧字符串函数仅用于向后兼容。你最好习惯附加到字符串类型的方法。答案 1 :(得分:0)
这个问题的最终结果是我使用Reflector来获取方法,手动提供密钥来执行解密,因为上面显示的解密方法只是调用了获取密钥的方法。
答案 2 :(得分:0)
检查web.config中的machinekey元素。信用卡是否可能使用与您尝试使用不同的密钥进行加密?