php7.1 mcrypt_encrypt 用什么替代

2017-06-01 21:46:50 +08:00
 17771258
现在程序中有这样一行代码

``` php

$encrypted = mcrypt_encrypt(
MCRYPT_RIJNDAEL_128,
"1234567890123456",
"123456",
MCRYPT_MODE_CBC,
"1234567890123456"
);

echo base64_encode($encrypted);

// 得到的结果为 QEwd/DWmy/4yGncCqBofQQ==

```
但是在 `php7.1.*` 中 `mcrypt_encrypt` 函数已经不允许使用,所以想请问各位我应该用什么方法得到同样的结果,在网上搜索有人说用 `openssl_encrypt` 函数替代,但是我测试了一圈还是不能得到正确的结果;

``` php

echo openssl_encrypt(
"123456",
"AES-128-CBC",
"1234567890123456",
null,
"1234567890123456"
);

// 得到的结果为 1jdzWuniG6UMtoa3T6uNLA==

```
各位有遇到过这样的问题吗,最后是怎么解决的。
5275 次点击
所在节点    PHP
8 条回复
justanding
2017-06-01 22:01:13 +08:00
用 openssl_encrypt
eoo
2017-06-01 23:38:07 +08:00
官方手册
Vonex
2017-06-01 23:41:17 +08:00
hash('sha512','xxx')不好吗
kokutou
2017-06-02 01:30:13 +08:00
m939594960
2017-06-02 11:16:24 +08:00
chenney
2017-06-02 17:53:05 +08:00
null 改成 OPENSSL_ZERO_PADDING 试试
components
2017-06-02 22:56:48 +08:00
http://php.net/manual/en/migration71.deprecated.php

The mcrypt extension has been abandonware for nearly a decade now, and was also fairly complex to use. It has therefore been deprecated in favour of OpenSSL, where it will be removed from the core and into PECL in PHP 7.2.
iyaozhen
2017-06-07 21:21:49 +08:00
但貌似有个问题 openssl_decrypt 不支持 PKCS5

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/365317

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX