首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >真openssl_encrypt和openssl_decrypt

真openssl_encrypt和openssl_decrypt
EN

Stack Overflow用户
提问于 2014-08-27 14:05:29
回答 1查看 5.2K关注 0票数 0

我对openssl_*函数在PHP中有几个问题

由于某种原因,PHP页面(http://php.net/manual/en/function.openssl-encrypt.php)表示$options参数可以是这些OPENSSL_RAW_DATA OPENSSL_ZERO_PADDING之一。

然而,当我使用OPENSSL_ZERO_PADDING加密数据时,它会显示空白字段。

代码语言:javascript
复制
$passphrase = md5( 'lolhaha' );
$iv                 = md5( 'cheese' );

$enc = openssl_encrypt( "Hello World!", "aes-256-cbc", $passphrase, OPENSSL_ZERO_PADDING, $iv );
echo $enc . "{ENC}";

echo ' --------- ';

$dec = openssl_decrypt( $enc, "aes-256-cbc", $passphrase, OPENSSL_ZERO_PADDING, $iv );
echo $dec . "{DEC}";

但是,如果我使用OPENSSL_RAW_DATA,它可以正常工作。现在,当在这个领域中使用false时,它也能工作,但是返回base64,这是因为我使用的是旧版本的PHP,而它仍然在使用bool $raw_output吗?int $option OPENSSL_ZERO_PADDINGbool $raw_output false相同吗?

而且,我得到的信息是,我的IV太长了,我使用的密码应该是16个字节。根据OpenSSL (https://www.openssl.org/docs/apps/enc.html),$iv$passphrase ( key to biohazard on PHP (http://php.net/manual/en/function.openssl-encrypt.php))应该是六位数值,md5对此合适吗?passphrase/key可以是多少字节?

错误,换句话说,您如何正确地使用这种加密?//困惑

EN

回答 1

Stack Overflow用户

发布于 2019-11-02 01:00:23

错误,换句话说,您如何正确地使用这种加密?//困惑

如果您正在寻找安全性,请使用defuse/php-加密代替。

如果你想学习,参见解除/php加密如何加密消息内部。

通常,OpenSSL扩展会为您提供太多的选择。在专家的监督下使用它是安全的(不像mcrypt),但它仍然不是很好的开发经验。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25529297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档