实现PHP和JavaScript的TripleDES加密解密(二)


实现PHP和JavaScript的TripleDES加密解密(二)

介绍

接着上一章开始讲,上章讲了TripleDES的大致原理以及在JS中的使用方法。因此这章节讲下PHP里去实现TripleDES。

PHP 里实现TripleDES加密解密

 function encryptBodyTP($data,$vk,$iv)
 {    
     //Pad for PKCS7
     $blockSize = mcrypt_get_block_size('tripledes', 'cbc');
     $len = strlen($data);
     var_dump($len);
     $pad = $blockSize - ($len % $blockSize);
     var_dump($pad);
     $data .= str_repeat(chr($pad), $pad);

     $key = $vk;

     //Encrypt data
     $encData = mcrypt_encrypt('tripledes', $key, $data, 'cbc',$iv); 

     return base64_encode($encData);
 }

上面的代码实现了在PHP下使用cbc工作模式、PKCS7Padding补位模式的加密算法。 而有一点需要注意的是要实现以上加密是需要下载一个php拓展.

mcrypt拓展。该拓展下载时会有些注意的地方:

  1. php version < 7.3(不包括7.3)请下载1.0.1版本
  2. php version >= 7.3 请下载1.0.2版本
  3. 下载完成后需要手动在php.ini里引入一下,如果你使用的是apache的话还需要在apache2里的php.ini里引入

总结

准确来说在PHP里实现TripleDES加密不算特别难,就是百度上的许多资料比较老,因此才会产生一系列问题。当然这个加密的过程中还会有一些因为业务而产生的坑,这块下节再讲。


文章作者: 我若为侠
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 我若为侠 !
 上一篇
实现PHP和JavaScript的TripleDES加密解密(三) 实现PHP和JavaScript的TripleDES加密解密(三)
实现PHP和JavaScript的TripleDES加密解密(三)介绍这章节讲下在加密过程中遇到的一些坑。 内容因为前端页面请求的时候会将一个32位16进制字符串转为 CryptoJs 类库里独有的数据结构 WordArray 去参与加密,
2020-05-20
下一篇 
实现PHP和JavaScript的TripleDES加密解密(一) 实现PHP和JavaScript的TripleDES加密解密(一)
实现PHP和JavaScript的TripleDES加密解密(一)介绍因为第三方PaaS服务商的接口调用是使用TripleDES加密参数的,因此需要在PHP实现与js效果一样的加密和解密,因此在花费了一周的时间解决这个问题后,记录过程,因为
2020-05-18
  目录