标签: php-openssl

如何启用PHP的openssl扩展来安装Composer?

我正在尝试在WAMP设置中安装Laravel.我收到一条警告信息,因为我没有启用我在WAMP中已经完成的openssl.

这是该消息的屏幕截图.

在此输入图像描述

php composer-php php-openssl

112
推荐指数
10
解决办法
24万
查看次数

OpenSSL 错误消息:错误:0A000126:SSL 例程::读取时出现意外的 eof

截图在这里

我使用 YII2 框架用 PHP 构建了一个网站。当我使用 file_get_contents($requestUrl, false, stream_context_create($arrContextOptions)) 时,我收到错误消息error:0A000126:SSLroutines::unexpected eof 在阅读时 我还尝试通过编辑 openssl.cnf 文件来启用旧提供程序,但没有成功。参考:https://gist.github.com/rdh27785/97210d439a280063bd768006450c435d

任何帮助将不胜感激。

服务器:Nginx(nginx/1.18.0)操作系统:Ubuntu 22.04 LTS PHP:7.4.29 Openssl:1.1.1d

php ubuntu openssl php-openssl

22
推荐指数
3
解决办法
8万
查看次数

在window7上安装Typo3 6.2.2时,PHP OpenSSL扩展无法正常工作

我在window7上安装了Typo3 6.2.2但是我收到如下错误信息:

PHP OpenSSL extension not working Something went wrong while trying to create a new private key for testing. Please check the integration of the PHP OpenSSL extension and if it is installed correctly.

我试图在互联网上找到关于这个错误的解决方案,但我无法解决这个错误.

有人知道,你能帮我找到解决方案吗?谢谢.

php windows apache typo3 php-openssl

15
推荐指数
2
解决办法
3万
查看次数

什么是openssl iv,为什么我需要一把钥匙和一个静脉?

我即将使用以下脚本来加密和解密某些数据.我正在使用它,因为我当前的加密在我们的新服务器上不起作用.我们目前正在使用mcrypt,所以我想更改为openssl.

在我们的数据库中,我们使用aes加密,它使用128位密钥,所以我知道密钥是什么,但我不知道openssl iv是什么?为什么我需要钥匙和iv.

我即将使用的代码就是这个,我在网站上找到了,因为我不太了解加密.

显然我会修改它,以便将密钥保存在其他地方.

function encrypt_decrypt($action, $string) {
    $output = false;

    $encrypt_method = "AES-256-CBC";
    $secret_key = 'This is my secret key';
    $secret_iv = 'This is my secret iv';

    // hash
    $key = hash('sha256', $secret_key);

    // iv - encrypt method AES-256-CBC expects 16 bytes - else you will get a warning
    $iv = substr(hash('sha256', $secret_iv), 0, 16);

    if( $action == 'encrypt' ) {
        $output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
        $output = base64_encode($output);
    }
    else if( $action == 'decrypt' ){ …
Run Code Online (Sandbox Code Playgroud)

encryption secret-key initialization-vector php-openssl

14
推荐指数
3
解决办法
2万
查看次数

MCrypt rijndael-128到OpenSSL aes-128-ecb转换

由于Mcrypt已被弃用,我想在我的代码中使用OpenSSL,因为我们已经在我们的服务器中使用了PHP 7.0.17并且没有告诉他们何时升级它.

某些第三方API(可能在PHP 5.x上托管并使用mcrypt)正在使用加密数据.他们提供了用于加密/解密字符串的方法.

他们是这样的

$secret = 'a0a7e7997b6d5fcd55f4b5c32611b87c' ;

public function encrypt128($str)
    {
        $block = mcrypt_get_block_size("rijndael_128", "ecb");
        $pad   = $block - (strlen($str) % $block);
        $str .= str_repeat(chr($pad), $pad);

        return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $secret, $str, MCRYPT_MODE_ECB));
    }

public function decrypt128($str)
    {
        $str = base64_decode($str);
        $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $secret, $str, MCRYPT_MODE_ECB);

        $len = strlen($str);
        $pad = ord($str[$len - 1]);

        return substr($str, 0, strlen($str) - $pad);
    }
Run Code Online (Sandbox Code Playgroud)

small1如果加密,使用这些方法字符串v7IXp5vVaFVXXlt/MN8BVw==


我们希望openssl_encrypt在我们这边使用,如果我们用OpenSSL加密相同的字符串,它必须给出与Mcrypt相同的结果.我研究过使用rijndael-128模式的mcrypt ecb应该与OpenSSL兼容aes-128-ecb. …

php encryption cryptography mcrypt php-openssl

14
推荐指数
2
解决办法
1万
查看次数

密码安全唯一ID

我想使用php生成加密安全的唯一uuids.

uniqid()提供唯一但不安全的id,openssl_random_pseudo_bytes()提供安全但不唯一的ID.两者(以下代码)的组合是正确的方法还是有更好的解决方案?

uniqid(bin2hex(openssl_random_pseudo_bytes(10)), true);
Run Code Online (Sandbox Code Playgroud)

php security uuid prng php-openssl

13
推荐指数
2
解决办法
4634
查看次数

php:mcrypt_encrypt到openssl_encrypt,以及OPENSSL_ZERO_PADDING问题

对于给定的$ key,$ message和$ iv,我有这个mcrypt_encrypt调用:

$string = mcrypt_encrypt(MCRYPT_3DES, $key, $message, MCRYPT_MODE_CBC, $iv);
Run Code Online (Sandbox Code Playgroud)

我想将mcrypt_encrypt呼叫改为$key一个,以便将来证明这一点.

通过具有$message$ivmcrypt_encrypt我得到的更多的类似的反应,但不完全相同.还有其他方法可以称之为完美匹配吗?

我正在为lorem-ipsum openssl_encrypt+ $mode = 'des-ede3-cbc'组合得到这个(base64_encoded),所以我开始相信一个函数或另一个函数在加密前稍微填充消息...

对于mcrypt

"Y + JgMBdfI7ZYY3M9lJXCtb5Vgu + rWvLBfjug2GLX7uo ="

为了openssl

"Y + JgMBdfI7ZYY3M9lJXCtb5Vgu + rWvLBvte4swdttHY ="

尝试使用$ options传递OPENSSL_ZERO_PADDING,但传递除1 之外的任何内容(OPENSSL_RAW_DATAtrue)会导致空字符串...

既不使用$mode = '3DES';也不$options = true工作... :(

还有其他线索吗?我正在使用"OpenSSL 1.0.2g 2016年3月1日".

已经读过这个 q&a,但它对我没有帮助.不是唯一 一个有填充问题的人,但到目前为止还没有解决方案.(第二个答案谈到添加填充到mcrypt调用,我真的想从openssl加密调用中删除填充...

php openssl 3des mcrypt php-openssl

13
推荐指数
1
解决办法
1万
查看次数

如何使用公钥/私钥加密php中的数据?

我有一小段一些数据(小于1kb),我希望用户代理从我的网站发送到其他网站.为了让其他站点验证我是创建字符串的那个,我有两个选项.

  1. 服务器请回要我确认(如paypal,openid等..)
  2. 我使用公钥/私钥来证明我发送的消息(如PGP,DKIM等)

我不想设置HMAC,因为这意味着我必须为每个站点使用自定义键,这将是一个痛苦.

在这两个选择中,似乎#2会节省带宽,这使它看起来是更好的选择.

那么如何使用PHP设置公钥/私钥加密,是否有任何缺点?

php cryptography pgp php-openssl libsodium

12
推荐指数
2
解决办法
3万
查看次数

在openssl_decrypt中使用带有php 5.3的OPENSSL_RAW_DATA参数

我公司正在我们的网站上实施V.me结账.Visa为我们提供了一个用于解密数据的php辅助函数文件,但其中一个使用openssl_decryptOPENSSL_RAW_DATA参数,该参数仅在PHP 5.4.something中可用.

return openssl_decrypt($data, 'aes-256-cbc', hashKey($key), OPENSSL_RAW_DATA, $iv);
Run Code Online (Sandbox Code Playgroud)

我们正在运行PHP 5.3,没有升级选项.如何修改此功能,以便在没有全局参数可用的情况下仍然执行它的设计?

php encryption php-openssl

11
推荐指数
1
解决办法
6140
查看次数

将C#函数加密和解密转换为PHP函数

我想将C#函数转换为PHP函数.以下是C#中Function的链接:https://stackoverflow.com/a/19441805/3581428

public static string Encrypt(string clearText)
{
    string EncryptionKey = "MAKV2SPBNI99212";
    byte[] clearBytes = Encoding.Unicode.GetBytes(clearText);
    using (Aes encryptor = Aes.Create())
    {
        Rfc2898DeriveBytes pdb = new 
            Rfc2898DeriveBytes(EncryptionKey, new byte[] 
            { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
        encryptor.Key = pdb.GetBytes(32);
        encryptor.IV = pdb.GetBytes(16);
        using (MemoryStream ms = new MemoryStream())
        {
            using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
            {
                cs.Write(clearBytes, 0, clearBytes.Length);
                cs.Close();
            }
            clearText = Convert.ToBase64String(ms.ToArray());
        }
    }
    return clearText; …
Run Code Online (Sandbox Code Playgroud)

php c# encryption php-openssl

10
推荐指数
1
解决办法
4671
查看次数