大侠们能不能就Delphi中Demo的Intrcpt例子给小弟详细地讲讲,到底怎么用。不够分数可以再加!!

解决方案 »

  1.   

    理论上可以这样:真正发送数据之前首先交换公钥,即接受方根据自己的私钥receiver_private_key生成自己的公钥(可用rsa算法)reciever_public_key,并把receiver_public_key给接受方。用md5得到hash值s,发送方使用blowfish算法以receiver_private_key为秘钥分别加密s和data得到es和edata,一起发送给接受方。接受方得到edata和es以后用receiver_private_key分别以blowfish解密得到ddata和ds,并且对ddata求md5 hash值vs。如果vs==ds则有ddata==data,即,在传输过程没有被人篡改。这样就完成了一次收发。建议每次发送都用不同的receiver_private_key.
      

  2.   

    笔误:"reciever_public_key,并把receiver_public_key给接受方。
    用md5得到hash值s,发送方使用blowfish算法以receiver_private_key"==================>>>>"receiver_public_key,并把receiver_public_key给发送方。用md5得到hash值s,发送方使用blowfish算法以receiver_public_key"
      

  3.   

    需要注意的是,在edata和es的传输过程中,其格式不要太简单,也不要固定,不然无法防范interceptor分析edata和es的存放格式分别修改的情况。