兼容php7和php5的blowfish-compat加解密

我们的c++项目和php项目共同使用了blowfish-compat方式加密通信,但php升级到php7后,mcrypt扩展被废弃了。但openssl不支持blowfish-compat方式,于是多方查找和调试后,有了两个解决办法:

  1. 找到一个BlowFish的源码(非compat),将其改造成blowfish-compat
    2.调用openssl的BF-ECB类型加解密,但在前后进行字节序的调整。

前者只需要将 https://github.com/themattharris/PHP-Blowfish/blob/master/blowfish.php 代码中 'N2' 替换成 'V2'即可。
也可以直接使用我改过的版本:https://gist.github.com/k1988/c5c7f1bac1f94547b11c2a258c2a8ba3

后者,基于网上的一个代码改进如下:

 ". bin2hex($encrypted) ." 
"; echo "encryped-base64 => ". base64_encode($encrypted) ."
"; echo "raw => ". trim(decrypt($encrypted, '1234567890123456')) ."
";

你可能感兴趣的:(兼容php7和php5的blowfish-compat加解密)