如何在工作站电脑上访问SQLServer数据库所在服务器的硬盘ID,CPUID 或网卡ID呢?我想为一套医院信息管理系统做个加密注册程序,准备用硬盘ID或CPUID 或网卡ID来进行加密,如果对每个工作站电脑进行加密,太烦琐了,用户也不会答应,我想能不能只对服务器电脑进行加密控制呢?
能不能用COM对象访问SQLServer数据库所在服务器的硬盘ID,CPUID 或网卡ID呢?

解决方案 »

  1.   

    这样可以不:在服务器上做个程序,把硬盘ID,CPUID 或网卡ID加密保存数据库中的一个表中,你知道,别人不知道,况且是加密的,在客户端提取出来不就可以了吗,不用考虑复杂的COM对象访问SQLServer数据库所在服务器的硬件问题。
      

  2.   

    To apple800(老五) :
       谢谢你的指点。
      

  3.   

    apple800(老五) 的方法很有问题, 如果只是简单的把ID数据放入数据库那你就麻烦大了, 用户买你第一套的时候给你钱, 用为他没有ID加密数据, 但以后就不用钱了, 只要把新装一个软件, 把sql的DATA目录覆盖过来, 那么ID加密数据也盖过来了, 再不行就GHOST硬盘,客户不用关心你的加密数据在哪里, 只要有加密数据就可以了, --- 因为apple800(老五) 的加密法只检查加密好的数据是不是存在而不管是用哪个ID加密的!正确的方法是在SQL服务器端安装一个后台程序, 通过TCP/IP协议和工作站连接, 工作站在启动的时候和服务器后台程序通讯请求注册信息: 服务程序读取服务器的ID和加密信息返回给工作站, 工作站运算比较两者结果判定是否已经注册, 这样, 即使被克隆了加密信息, 但在不同的硬件上, 读取的ID是不一样的, 加密信息也就没用了.
      

  4.   

    写一个DLL,作为扩展存储过程给SQL调用具体方法可以参考SQL Server联机帮助