这是最近的一个项目遇见的一个问题,已解决,记录在这里备忘。
应用场景用一句话描述就是 :我不得不调用一个指定的dll 来解密服务器端软件发送过来的加密字符串。
//////这是加密字符串//////
$str = "899dffe40241776af15e9c8c4c10e1c17909aadcd95407150c82e201f238ae7548696496a0bcabfaddd03fb2b91164f78e026b2f20d2ee546414351535dcd6c0be2efa60b3f7702dae2820ce44e70c5981eca3b4705ac29393e1602892285856a9a350177e7febcc87d07afd3b5d014eec279664e22bb97d9ed8a753741faa4d4bc2e2418ca03fac14fe562bf6f75948c4be42f7af70f162b5d75b3a1a667d55e523a785a81d9cb1abaaed6b6af3de";
///////////////////////////////调用com组件///////////////////(php_dll.dll为公司内部开发的动态链接库)
$com = new COM("php_dll.Record") or die("##190##"); //建立COM组件 $de_str = $com->Decrypt_Data($str); //解密后的字符串打印$de_str的结果,此时报错:Failed to create COM object `php_dll.Record'
原因在于这个组件没有注册。
注册com组件步骤:
开始>>程序>>管理工具>>组件服务,或者控制面板>>管理工具>>组件服务,左边的树中,组件服务>>计算机>>我的电脑>>COM+应用程序,右击>>新建应用程序,然后一直下一步,就创建了一个应用程序,然后在里面可以注册组件。如果你是服务器上注册的,可能需要在角色中添加administrator和guest两个用户,否则组件有可能不能正常运行。
此时程序正常运行,解密成功。
( [qq] => 13922123 [phone] => 1302132132 [contact] => weiwei [ver] => 2010.123.222 [city] => 12 [prov] => 3 [pwd] => 202cb962ac59075b964b07152d234b70 [diskid] => 123 [rgc] => 240 [bname] => 123 [account] => KYKN7550135 )