.netCART信用卡解密 - IIS 7应用程序池和解密问题

时间:2009-05-18 16:08:24

标签: asp.net vb.net .net-2.0 windows-server-2008

我有一个使用.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相关联。任何人都可以告诉我哪些流程或服务与默认的应用程序池绑定有助于解密?

3 个答案:

答案 0 :(得分:0)

不知道您的具体问题在哪里,但该代码段与此相同:

Dim CCEncrypt As String = tools.Decrypt(DataRow("CreditCard").ToString().Trim())

解释变化:

  • 您可以跳过.Item部分,因为它是DataRow的索引器
  • 但是如果是其他类型或DbNulls,你应该致电.ToString()
  • 然后使用字符串类型的.Trim()方法而不是VB Trim()函数。 Trim()和其他旧字符串函数仅用于向后兼容。你最好习惯附加到字符串类型的方法。
  • 在.Net中,声明一个变量并在同一行上分配它没什么大不了的。
  • 在.Net中,微软的风格指南明确建议不要使用变量名称上的任何匈牙利符号类型的疣。

答案 1 :(得分:0)

这个问题的最终结果是我使用Reflector来获取方法,手动提供密钥来执行解密,因为上面显示的解密方法只是调用了获取密钥的方法。

答案 2 :(得分:0)

检查web.config中的machinekey元素。信用卡是否可能使用与您尝试使用不同的密钥进行加密?