php7 DES加密 兼容php5.3以上所有版本

加密原方案:
block = mcrypt_get_block_size('des', 'ecb');pad = block - (strlen(str) % block);str .= str_repeat(chr(pad),pad);
data = mcrypt_encrypt(MCRYPT_DES,key, str,MCRYPT_MODE_ECB);ret = base64_encode($data);

其中:mcrypt_get_block_size()mcrypt_encrypt()@deprecated 7.1 就是说在7.1版本之后就被废弃了,不过7.1一下的版本还是支持的

加密替代方案(兼容php5.3以上所有版本):
ret = openssl_encrypt(input,'des-ecb',key,0); //DES 注 * (如果需要3des的话):ret = openssl_encrypt(input,'des-ede3',key,0); //3DES

总结:一句话解决一大段,还可以兼容版本,棒!

解密原方案:
str = base64_decode(str);
str = mcrypt_decrypt(MCRYPT_DES,key, str, MCRYPT_MODE_ECB);block = mcrypt_get_block_size('des', 'ecb');
pad = ord(str[(len = strlen(str)) - 1]);
return substr(str, 0, strlen(str) - $pad);

解密替代方案:
str = openssl_decrypt(str,'des-ecb',key,OPENSSL_ZERO_PADDING);pad = ord(str[(len = strlen(str)) - 1]); return substr(str, 0, strlen(str) -pad);

解密方案不再赘述,如需要查看参数可自行查看php官方文档

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容