【发布时间】:2017-01-22 15:41:22
【问题描述】:
在 PHP 5.6 中有很多基于 http://php.net/manual/en/function.mcrypt-decrypt.php 的完美解决方案
例如
public function encrypt($data)
{
//don't use default php padding which is '\0'
$pad = $this->blocksize - (strlen($data) % $this->blocksize);
$data = $data . str_repeat(chr($pad), $pad);
return bin2hex(mcrypt_encrypt(MCRYPT_RIJNDAEL_128,
$this->encryptKey,
$data, MCRYPT_MODE_CBC, $this->iv));
}
但是 PHP7 有一个 WARNING 不鼓励使用这个函数。
“自 PHP 7.1.0 起,该函数已被弃用。强烈建议不要依赖此函数。”
在两端使用关键字进行安全加密的任何想法; PHP + Node.js?
【问题讨论】:
-
这解释了它被弃用的原因,并就改用什么提出了建议php.net/manual/en/migration71.deprecated.php
-
尝试使用
openssl_encryptphp.net/manual/en/function.openssl-encrypt.php -
按照建议,使用openssl,不仅因为LibMcrypt已被弃用,还因为NodeJS Crypto模块依赖于openssl,因此您可以期待算法的良好兼容性。
标签: php node.js encryption php-7