首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mcrypt_encrypt():Mcrypt初始化失败

mcrypt_encrypt():Mcrypt初始化失败
EN

Stack Overflow用户
提问于 2016-07-29 01:12:24
回答 2查看 276关注 0票数 2

我下载了示例Laravel 5项目,并尝试在本地机器上进行测试。但我可以看到以下错误:

ErrorException in User.php第115行:

mcrypt_encrypt():Mcrypt初始化失败

代码语言:javascript
复制
1. in User.php line 115
2. at HandleExceptions->handleError('4096', 'mcrypt_encrypt(): Mcrypt     initialisation failed', 'C:\wamp\www\noj\app\Models\User.php', '115',     array('pure_string' => 'asdfasdf', 'USER_PASSWORD_SALT' => null, 'key' => '', 'iv_size' => '8', 'iv' => 'ЎZo\S '))
3. at mcrypt_encrypt('blowfish', '', 'asdfasdf', 'ecb', 'ЎZo\S ') in User.php line 115
4. at User::encrypthash('asdfasdf') in Registrar.php line 36
5. at Registrar->create(array('_token' => '7oIiiOAtUu4Quc949u7SmtcDlI5a0zo0AEJgBA3S', 'name' => 'Bob', 'email' => 'bob@example.com', 'password' => 'asdfasdf', 'password_confirmation' => 'asdfasdf')) in AuthenticatesAndRegistersUsers.php line 50
6. at AuthController->postRegister(object(Request))</li>
...

User.php

代码语言:javascript
复制
        ...  
108.    public static function encrypthash($pure_string) {
109.        //xulianwhocreatenoj
110.        $USER_PASSWORD_SALT = env('USER_PASSWORD_SALT');
111.        $key = pack('H*', $USER_PASSWORD_SALT);
112.        $pure_string = trim($pure_string);
113.        $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC);
114.        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
115.        $encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, utf8_encode($pure_string), MCRYPT_MODE_ECB, $iv);
116.        return base64_encode($encrypted_string);
117.    }
        ...

我对PHP或mcrypt_encrypt()函数没有很深的了解。请帮我把这个处理掉。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-29 01:22:42

第115行的问题是,加密密钥只是一个空字符串。

$key是空的,因为上面有两行,您有:

代码语言:javascript
复制
$USER_PASSWORD_SALT = env('USER_PASSWORD_SALT');

问题是env('USER_PASSWORD_SALT')是空的,所以没有盐。如果您修复了这个问题,您的功能就会正常工作。

票数 2
EN

Stack Overflow用户

发布于 2016-07-29 01:14:27

在命令行(应该位于Laravel项目根上)上运行php artisan key:generate以刷新应用程序键。

然后清除缓存和会话,然后再试一次。

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

https://stackoverflow.com/questions/38649037

复制
相关文章

相似问题

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