请问
  我想在internet上运行三层程序但安全问题如何解决,我想在服务器端进行加密
  请问如何加密?谢谢!!!!

解决方案 »

  1.   

    如果你用的是DataSetProvider和ClientDataSet,那有好几个事件里可以
    对数据先行加密
      

  2.   

    可是我有许多DataSetProvider呀,要是每一个都设的话,那我就累死了
    ,请问如何处理?谢谢!!
      

  3.   

    你可以写一个加密函数,然后调用就得了。
    至于事件,根据你是存取数据还是更新数据有所不同。
    你可以参考李维的“Delphi 5.x分布式多层应用系统篇”
      

  4.   

    我的加密函数http://www.csdn.net/expert/topic/678/678310.xml?temp=.2393915
      

  5.   

    liutaoboy(风间苍月) CORBA不是这样进行加密的,它通过事件控制客户端的连接的,在事件中写进动作后,规范这个动作的触发和结束。至于加密的表达式等等更加可以包装在里面,实际上是由TYPELIBERAY控制的,IDL也可以写的,但是很复杂。你在分发程序的时候,千万别把CORBA事件代码给人看,这不保密。
      

  6.   

    请问我用scoket server如何加密?谢谢!!!
      

  7.   

    你是用TDComConnection还是用TSocketConnection?
    如果是前者,你可以利用COM本身提供的安全机制。
    如果你用TSocketConnection,你可以设置他的端口port,
    保持scktsrvr.exe的端口和他一致就可以了。
      

  8.   

    我是用的TSocketConnection,假如有人知道我的服务器的ip地址和port段口号,就可以肆无忌弹的访问我的服务器了,我想要知道如何才能防止这种事情
    发生,只让我写的程序可以别人的就不行。该如何实现,谢谢!!
      

  9.   

    你可以如楼上所说的,在客户端增加一个登陆验证层面,
    对其用户名和密码进行验证,这样,即使其知道服务器的
    ip地址和port号也不行
      

  10.   

    在 delphi 的..\Borland\Delphi6\Demos\Midas\Intrcpt目录里有一个例子哦,需要用到zlib单元(在delphi 光盘上)。以下译自该单元的注释:
    ——————————————————————————————————
    要使用这个演示(请做以下步骤):
    1)确认你已经将该单元复制到硬盘的一个目录,并将该目录加入到项目的搜索路径中(在project|options中选择directories/conditionals中设置);
    2)编译Intrcpt.dpr;
    3)用REGSVR32 或 TREGSVR在客户端和服务器端分别注册 Intrcpt.DLL;
    4)在服务器端打开Socket Server的properties(属性),方法是右击Socket Server在系统托盘上的图标(就是运行scktsrvr.exe后出现的那个),选properties,在GUID拦里加入Intrcpt.DLL的GUID;
    5)在客户端:设置SocketConnection控件的InterceptName属性为Intrcpt.DataCompressor,GUID属性会自动设置,编译客户端。
    ——————————————————————————————————
    以上是加密数据的方法。它的作用是防止数据在传输过程中被非法获取后利用。登录的作用是防止非授权的获取对服务器的访问(和加密是两个概念),例子在
    ..\Borland\Delphi6\Demos\Midas\login里
    内容太多你慢慢看了
    我一般就是在接口里加个登录函数(用user 和 password做参数),如果成功就连接数据库,不成功就断开,同时返回一个短整型或布尔值说明连接成功或失败(当客户端有注册新用户功能时或需要说明失败原因时用一个整数代表:用户已经存在,密码错误,用户不存在...等)。
    加函数的方法是:view|type library打开type library,然后edit|add to interface.
      

  11.   

    http://www.csdn.net/cnshare/soft/13/13920.shtm