问题标签 [php-openssl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 在 PHP 中使用 RSA 公钥验证 JWT 签名
在 PHP 中,我正在尝试使用 AWS 的 RSA 公钥(我从https://cognito-identity.amazonaws.com/.well-known的模数/指数生成)验证 AWS 身份验证令牌(从 getOpenIdTokenForDeveloperIdentity 返回的 JWT) /jwks_uri)。关键从适当的页眉/页脚-----BEGIN RSA PUBLIC KEY-----
等开始。我查看了一些 PHP 库,例如Emarref\Jwt\Jwt
,但是我得到了错误:error:0906D06C:PEM routines:PEM_read_bio:no start line
。这一切都归结为基本的 php 函数:openssl_verify
.
我查看了 openssl-verify 的 php.net/manual,但我仍然不清楚参数详细信息。需要的算法是RS512
。
我能够使用 node.js 验证 JWT 令牌没有问题(相同的密钥和令牌)。为此,我使用了该库:https ://github.com/auth0/node-jsonwebtoken
不知道为什么这在 PHP 中不起作用。我可以不使用 RSA 公钥吗?
php - How to encrypt plaintext with AES-256 CBC in PHP using OpenSSL?
I am trying to encrypt sensitive user data like personal messages in my php powered website before entering into the database. I have researched a bit on the internet and I have found the few important things to remember:
Never use mcrypt, it's abandonware.
AES is based on the Rijndael algorithm and has been unbroken till now.
AES has also been recommended by NSA and used in US Government data encryption, but since the NSA is recommending it, there's a chance they might sneak upon my user data easily.
Blowfish has been unbroken as well, but slow and less popular.
So, I decided I will give it a try first with AES-256 cbc. But I am still not sure if I should not consider Blowfish a better option. So any recommendations are welcome.
And my primary concern is, how to encrypt the data in php? I don't find a good manual about this in the php documentation. What is the correct way to implement it?
Any help is heavily appreciated.
php - mcrypt_create_iv returns undefined variable
My encryption/iv code doesn't work. Whenever I test the login I get this error
Warning: openssl_encrypt(): Using an empty Initialization Vector (iv) is potentially insecure and not recommended in /Users/luke/Sites/user.php on line 174
I have tracked it down to this line
Mcrypt is installed fine as shown by this. Can you help or do i possibly need to provide more code?
php - 是否有理由更喜欢 openssl_pkey_get_private 而不是将其加载到内存中?
我想知道为什么有不同的方法可以在 PHP 中使用 openssl 函数:
- 将键作为字符串传递(例如,使用 加载它
file_get_contents()
,或将其存储在 env 变量中) - 将密钥文件作为文件名传递:
file:///var/keys/private_key
- 使用加载密钥
openssl_pkey_get_private()
,然后释放它openssl_free_key()
有理由偏爱特定的方法吗?最后一个解决方案是否更好地处理密钥是如何从内存中加载/释放的(如果是这样,这是否会影响安全)?
php - PHP 和 OpenSsl
我应该在支持 php 并启用 php-openssl 扩展的主机服务器上执行以下 openssl 命令。
openssl.exe smime -verify -inform DER -in $p7m_file -noverify -out $out_file
上述(正常运行)命令的等效 php 代码是什么?我必须只使用 openssl-extension 而不是任何 shell 命令。
详细来说,我需要在不验证签名的情况下解密 CADES 文件 https://en.wikipedia.org/wiki/CAdES_(computing)
php - Pass string instead of file to openssl_pkcs7_sign()
I am looking into php openSSL library and need to sign a string using pub and priv key. The function openssl_pkcs7_sign()
from documentation it seem to take the file path as a file parameter but I have string in a variable that I need to encrypt. I see all of its examples points to writing files.
Is there any way I can pass the string into the function? Or perhaps some other functions available? Writing file to disk doesn't seem very practical for my use cases.
php - php作曲家openssl错误
在问之前,我不得不说我已经在堆栈和其他地方尝试过所有类似的问题,但都失败了。
composer
由于此错误,我无法使用:
我有xampp
。ubuntu
我试过的:
- 我
;extension=php_openssl.dll
在php.ini
(cli 和正常)中没有评论 - 没有工作 - 通过 php 之外的终端安装了 openssl - 不起作用
- 检查
phpinfo()
是否openssl
已加载并激活
- 还有更多人喜欢
php -c /opt/lampp/etc/php.ini composer.phar install
在我出错的地方运行作曲家
PHP Warning: PHP Startup: Unable to load dynamic library /usr/include/php5/ext/php_openssl.so - /usr/include/php5/ext/php_openssl.so: cannot open shared object file: No such file or directory in Unknown on line 0
- 我尝试过改
PATH
,bashrc
也没有成功
我发现奇怪的是扩展的位置......
在phpinfo()
扩展目录中,/usr/include/php5/ext/
即使我尝试在其中指定另一个目录php.ini
,当然也重新启动 apache,但仍然没有显示在phpinfo()
.
但是在php-config
命令中我得到扩展目录是/usr/local/lib/php/extensions/no-debug-non-zts-20100525
我不确定系统上是否有多个 php,但我试图查找 php.ini 文件,但只找到了 2 个。
php - PHP 无法识别 openssl_encrypt
openssl_encrypt ($string, $method, $pass);
当我通过 php cmd 运行它时,我可以运行它。但是,当我通过 Apache http 服务器运行它时,它会抛出以下错误:
php - 调用未定义函数 Illuminate\Encryption\openssl_decrypt()
我正在使用 xampp 和 windows 以及 laravel,一切正常,但是当我完成工作并打开 xampp 并尝试今天早上打开我的工作时,这就是我得到的:
Encrypter.php 是一个标准的 laravel 文件,我什至没有碰过它。我的扩展程序已打开。
扩展=php_openssl.dll
可能有什么问题?
php - openssl_decrypt 总是返回 false
我试图将我的加密从 mcrypt 迁移到 openssl,但解密一直失败。下面的代码显示了我的加密功能。我将 var_dump 放在加密函数中,以验证使用相同变量的解密是否有效。
我尝试了对代码的以下更改,但都没有奏效:
base64_decode($encrypted)
- 只是出于好奇
base64_encode($encrypted)
- 所有这些变体的选项设置为:0(默认值)、OPENSSL_RAW_DATA、OPENSSL_ZERO_PADDING
PHP版本为7.0.5-1+deb.sury.org~trusty+1
OpenSSL 版本是 OpenSSL 1.0.2g 2016 年 3 月 1 日
为什么让 openssl_decrypt 返回 false?我成功地使用上面一行相同的变量进行了加密。