最近有个项目,发送信息的时候要用到MAC(Message Authentication Code),用DES CBC算法。
网上查了一下,大概意思就是给 要给数据 计算出个校验码,同数据本身一起发送出去,对端根据校验码确认数据是否被篡改过。想问问,PHP中有没有函数可以直接实现这个功能,自己写函数的话又是分段、又是异或、又是加密的头都大了。我看有mcrypt_cbc 这么个函数,不知道有没有关系。请高手帮忙!最好能给个示例说明下,或者指个方向。MACDECCBC

解决方案 »

  1.   

    mcrypt_cbc使用 CBC 将资料加/解密。语法: string mcrypt_cbc(int cipher, string key, string data, int mode, string [iv]);返回值: 字符串函数种类: 编码处理内容说明本函数使用 CBC 密码检索本 (cipher block chaining),将资料加密及解密。参数 cipher 为加/解密方式,例如 MCRYPT_TripleDES。参数 key 是密码钥匙,当然要注意保持它的机密性。欲加密或解密的字符串就放在参数 data 之中。参数 mode 表示加密 MCRYPT_ENCRYPT 或是解密 MCRYPT_DECRYPT。参数 iv 是可省略的参数,代表向量初始化 (Initialization vector, IV)。原谅我复制官方说明,不过单纯从解释来看,这是一个加密用的函数。根据你的需求,虽然可以产生一个密文,然后把KEY也一起发过去,对端对发送过来的明文用同样的KEY再加密,比较密文,是可以达到校验的目的。但是KEY传输就失去了安全性。相对简单的,MD5似乎更加容易吧。因为不需要key。