我试图使用migrate
功能Laravel 4
上OSX
.但是,我收到以下错误:
Laravel requires the Mcrypt PHP extension.
Run Code Online (Sandbox Code Playgroud)
据我了解,它已经启用(见下图).
有什么问题,我该如何解决?
可能重复:
PHP双向加密:我需要存储可以检索的密码
我计划在我的网站上为我的用户存储外国帐户信息,也就是用户名和密码等等...我想保证信息的安全,但我知道如果我散列他们的信息,我无法检索它以供以后使用.
Base64是可解密的,所以没有必要使用它只是简单的关闭.我的想法是加扰用户并在它解密之前和之后通过这种方式传递,如果你尝试解密,你会得到一些看起来很有趣的文本.是否有一个php函数接受将进行字符串的唯一加扰的值,并在以后重新计算该值时对其进行解扰?
有什么建议?
不推荐使用的mcrypt-extension 将根据此处发布的评论在PHP 7.2中删除.所以我正在寻找一种加密密码的替代方法.
现在我正在使用类似的东西
mcrypt_encrypt(MCRYPT_RIJNDAEL_128, md5($key, true), $string, MCRYPT_MODE_CBC, $iv)
Run Code Online (Sandbox Code Playgroud)
我需要您对加密密码的最佳/最强方式的意见,加密密码当然应该由PHP 7.xx支持,并且还应该是可解密的,因为我的客户确实想要选择"恢复"他们的密码而不生成新的密码一.
注意: MCrypt支持的库依赖于多年未更新,MCrypt不应再被视为加密数据的可行或安全方法.更重要的是,这个Mcrypt已被弃用,在PHP 5中,而且完全在PHP 7.删除如果您有运行的mcrypt你应该重构它使用更现代化的加密库的任何代码.
有谁知道为什么这个错误信息:(Call to undefined function mcrypt_encrypt() )
当我在下面运行以下代码时显示?
我错过了一些步骤,也许在这个代码可以工作之前我必须做的任何设置?
$key = 'password to (en/de)crypt';
$string = 'string to be encrypted';
$test = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key),
$string, MCRYPT_MODE_CBC, md5(md5($key)));
Run Code Online (Sandbox Code Playgroud) 答案摘要:
不要这样做.法律和财务方面的影响将是灾难性的.寻找既定的第三方解决方案或聘请专家.切勿在共享服务器上存储任何敏感信息.研究最合适的加密机制.
我正在为一个客户建立一个网站,该网站需要将客户的银行信息(路由+账号)存储在数据库中以进行直接存款.以下是一些细节:
1)该网站最初将位于共享托管服务器上(这是我首先关注的问题).
2)我正在使用PHP/MySQL.
3)我打算使用mcrypt.
4)密钥将位于Web根目录之外.
请让我知道你的想法.如果可能的话,请向我提供有关ACH处理的一些资源.
谢谢!
编辑:我期待这样的回应,因为我也害怕安全问题.我向客户表达了我的担忧,这将是一个很好的支持.
编辑2:将离开这一点.首先对这个想法不满意!将调查PayPal的批量支付API.
试图设置Laravel并继续遇到此错误.我通过brew安装了mcrypt,它位于/ usr/local/Cellar.有什么想法吗?..它没有出现在终端命令php -m中,如果这很重要.我正在使用macs本地Web服务器运行Mountaion Lion.
为潜在的n00b问题提前道歉,我正在尝试在我的OSX Mountain Lion机器上安装PHP的mcrypt扩展.
终端中的以下步骤是我到目前为止完成PHP安装所做的工作
cd /path/to/downloaded/php-5.3.21/ext/mcrypt/
/usr/bin/phpize
./configure
cd /path/to/downloaded/php-5.3.21
./configure --with-config-file-path=/private/etc/php.ini --with-apxs2=/usr/sbin/apxs
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
这似乎运作良好,并安装PHP 5.3.21罚款.我已经完成了
sudo nano /private/etc/php.ini
Run Code Online (Sandbox Code Playgroud)
并包括在内
extension=mcrypt.so
Run Code Online (Sandbox Code Playgroud)
随着Apache重启,phpinfo()没有显示加载了mcrypt扩展.
然后我尝试在php.ini中指定extension_dir,再次没有运气.
我已经做好了
locate mcrypt.so
/opt/local/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so
/usr/local/Cellar/php53-mcrypt/5.3.18/mcrypt.so
Run Code Online (Sandbox Code Playgroud)
并尝试将这两个目录作为extension_dir,没有运气.
经过谷歌搜索后,我也尝试了以下内容
./configure --with-config-file-path=/private/etc/php.ini --with-apxs2=/usr/sbin/apxs --with-mcrypt
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,但随后"制造",它返回
ext/mcrypt/mcrypt.o: No such file or directory
ext/mcrypt/mcrypt_filter.o: No such file or directory
Run Code Online (Sandbox Code Playgroud)
再次,没有成功.
我究竟做错了什么?似乎mcrypt.so的物理编译没有发生,或者编译错误,因为我怀疑在locate下找到另一个mcrypt.so?
有人请帮忙吗?我在Google搜索页面上浏览过没有运气的页面!
因为我正在尝试从PHP 7.2.X版本加载mcrypt扩展模块.
所以我尝试使用与我当前版本的PHP兼容的PECL库,以便安装并遵循以下链接:
在安装过程中在PHP 7.2上安装mcrypt!
以下是在终端上执行某些命令后获得的结果.
root@YYY:/var/www/html/orocrm# apt install php-pear
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libllvm4.0
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed:
php-pear
0 upgraded, 1 newly installed, 0 to remove and 14 not upgraded.
Need to get 285 kB of archives.
After this operation, 2,107 kB of additional disk space will be …
Run Code Online (Sandbox Code Playgroud) 我想使用PHP mt_rand()
函数生成一个6位数的随机数.
我知道PHP mt_rand()
函数只需要2个参数:最小值和最大值.
我怎样才能做到这一点?