openssl_private_encrypt()返回false,输出为0

Lor*_*llo 1 php encryption openssl

我正在尝试使用PHP函数openssl_private_encrypt()在保存上载文件之前对其进行加密(请参见下面的代码片段),但是它的布尔值返回false,而加密的内容返回值则什么也不返回。没有错误正在显示或报告。

        $data = file_get_contents($_FILES['files']['tmp_name'][0]);

        openssl_private_encrypt($data,$encrypted,$key);

        $hash = sha1($encrypted);
        file_put_contents('/path/to/folder/'.$hash,$encrypted);
Run Code Online (Sandbox Code Playgroud)

是否有人对为什么它不起作用有任何想法?

谢谢

Sky*_*fer 5

我不确定PHP,但在C / C ++(OpenSSL)中,非对称加密(主要是RSA)适用于长度小于密钥大小的数据。通常,它用于加密哈希值。如果要加密大量(约256个字节)的数据,则最好使用一些对称(块)密码,例如AES或TriDES。顺便说一句,对称密码要快得多。

PS对不起,我没有足够的声誉来将此帖子发表评论。