标签: mcrypt

在Mac OS X 10.5.8上安装PHP的Mcrypt扩展

我如何安装mcrypt?我正在使用Leopard 10.5.8和PHP5.

php macos installation mcrypt

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

PHP AES加密......不知道我在做什么

我对加密知之甚少,但我能够让AES在某种程度上使用PHP.以下是我正在使用的几个函数:

function aes_decrypt($val,$ky) 
{ 
    $key="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; 
    for($a=0;$a<strlen($ky);$a++) 
      $key[$a%16]=chr(ord($key[$a%16]) ^ ord($ky[$a])); 
    $mode = MCRYPT_MODE_ECB; 
    $enc = MCRYPT_RIJNDAEL_128; 
    $dec = @mcrypt_decrypt($enc, $key, $val, $mode, @mcrypt_create_iv( @mcrypt_get_iv_size($enc, $mode), MCRYPT_RAND) ); 
    return rtrim($dec,(( ord(substr($dec,strlen($dec)-1,1))>=0 and ord(substr($dec, strlen($dec)-1,1))<=16)? chr(ord( substr($dec,strlen($dec)-1,1))):null)); 
} 

function aes_encrypt($val,$ky) 
{ 
    $key="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; 
    for($a=0;$a<strlen($ky);$a++) 
      $key[$a%16]=chr(ord($key[$a%16]) ^ ord($ky[$a])); 
    $mode=MCRYPT_MODE_ECB; 
    $enc=MCRYPT_RIJNDAEL_128; 
    $val=str_pad($val, (16*(floor(strlen($val) / 16)+(strlen($val) % 16==0?2:1))), chr(16-(strlen($val) % 16))); 
    return mcrypt_encrypt($enc, $key, $val, $mode, mcrypt_create_iv( mcrypt_get_iv_size($enc, $mode), MCRYPT_RAND)); 
} 
Run Code Online (Sandbox Code Playgroud)

这些是对mcrypt的PHP文档页面上的注释稍作修改的.(我从dev_urandom更改为rand,因为我在windows框中,dev_urandom不可用.)

无论如何,我在这个函数中使用的键定义如下:

define("PSK", pack("H*", "abcd7b5ca46e12345678a8161fdacee9"));
Run Code Online (Sandbox Code Playgroud)

我把这个函数称为:

echo bin2hex(aes_encrypt("wootwootwootwootwootwootwoo", PSK));

现在,生成的十六进制字符串的前16个字节(32位)很好.接下来的16个字节与预期的不匹配.

请参阅,我将此数据发布到外部Web服务,然后将其解密.我(遗憾的是)不能给出我没有分发加密密钥和数据的测试用例.我非常抱歉,但我希望熟悉mcrypt的人可以看看这个并告诉我我做错了什么.

再次,对于缺乏可靠的测试用例感到遗憾,但我非常感谢您提供的任何帮助!

编辑:我发布的似乎是我的提供商正在使用null …

php encryption aes mcrypt

3
推荐指数
1
解决办法
1417
查看次数

无法编译mcrypt(配置失败:-lmhash中的mhash_keygen ... no)

Shawn Chin在答案1中解决了问题.让我疯狂的是,编译mcrypt扩展,只有libmcrypt就足够了,没有必要编译mhash和mcrypt :(


我想为php编译mcrypt扩展(RHEL5.1,Intel i5 650),这是我的程序

# libmcrypt
tar zxf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure --prefix=/home/felix021/lamp/libmcrypt/
make
make install

# mhash
tar jxf mhash-0.9.9.9.tar.bz2
cd mhash-0.9.9.9
./configure --prefix=/home/felix021/lamp/mhash/
make
make install 

# mcrypt
LD_LIBRARY_PATH=/home/felix021/lamp/libmcrypt/lib:/home/felix021/lamp/mhash/lib
./configure --prefix=/home/felix021/lamp/mcrypt/ \
    --with-libmcrypt-prefix=/home/felix021/lamp/libmcrypt
Run Code Online (Sandbox Code Playgroud)

配置失败并注意到:

checking for mhash_keygen in -lmhash... no
configure: error: "You need at least libmhash 0.8.15 to compile this program. \
http://mhash.sf.net/"
Run Code Online (Sandbox Code Playgroud)

所以我下载了mhash0.8.18和mhash0.8.15,但是发生了同样的错误.

我在0.8.15/8中查找了"mhash_keygen":

int mhash_keygen(xxx,xxx,xxx)
Run Code Online (Sandbox Code Playgroud)

它在0.9.9.9:

#if defined(PROTOTYPES)
mutils_error mhash_keygen(keygenid algorithm, ....)
#else
mutils_error mhash_keygen();
#endif
//typedef uint32 mutils_error
Run Code Online (Sandbox Code Playgroud)

但是,mcrypt-2.6.8/configure +12114,它是:

char …
Run Code Online (Sandbox Code Playgroud)

php linux mcrypt

3
推荐指数
1
解决办法
5941
查看次数

PHP的mcrypt扩展名是否符合FIPS 197标准?

我正在使用以下加密代码,它的功能类似于魅力,但我必须验证它是否符合FIPS 197,否则Legal会杀了我.

mcrypt_encrypt(MCRYPT_RIJNDAEL_256, SALT, $plaintext, MCRYPT_MODE_ECB,
               mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB),
                                MCRYPT_RAND))
Run Code Online (Sandbox Code Playgroud)

mcrypt_decrypt(MCRYPT_RIJNDAEL_256, SALT, $plaintext, MCRYPT_MODE_ECB,
               mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB),
                                MCRYPT_RAND))
Run Code Online (Sandbox Code Playgroud)

php cryptography fips mcrypt

3
推荐指数
1
解决办法
1005
查看次数

Hash :: make('password')在每次调用时返回不同的结果

所以,标题基本上描述了我的问题.我的哈希:make()疯了.我创建了一个带有哈希密码的用户表,但我无法让Laravel接受我的凭据,我认为问题出在Hash :: make中.

所以,测试这段代码:

Route::get('/',  function()
{
    return Hash::make('1234');
});
Run Code Online (Sandbox Code Playgroud)

每当我点击路线'/'时,它就会给我一个不同的哈希值.

它对每个人都表现如此吗?有什么建议?我迷路了!

在火箭小费之后,我试过了

    if(!Hash::check('1234', User::find(1)->password))
    return 'not';

$credentials = array(
        'email' => 'vitor.lobs@gmail.com',
        'password' => '1234',
        //'remember' => $remember   
    );
if(Auth::attempt($credentials))
{
    return  View::make('hello');
}
return "Invalid Credentials";
Run Code Online (Sandbox Code Playgroud)

但它不断返回"无效凭据".我已经仔细检查了我的auth.php,并且设置正确.还有什么我可以尝试的吗?

php hash mcrypt eloquent laravel-4

3
推荐指数
1
解决办法
2619
查看次数

phpmyadmin mcrypt扩展程序丢失了

我正在使用CentOS 6和最新的phpMyAdmin(4.0.1.4),我注意到错误"mcrypt扩展名丢失.请检查您的PHP配置."

我继续跑了:

 rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Run Code Online (Sandbox Code Playgroud)

然后跑了:

yum install php-mycrypt
Run Code Online (Sandbox Code Playgroud)

然后重启httpd服务仍然没有运气.

知道我怎么能让它消失?

linux centos phpmyadmin mcrypt

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

麻烦在小牛上安装mcrypt库(10.9)

我能够在Mountain Lion上成功安装mcrypt扩展,但我很难在Mavericks上安装扩展.

作为参考,我遵循本指南:http://www.coolestguidesontheplanet.com/install-mcrypt-php-mac-osx-10-9-mavericks-development-server/

我注意到的唯一不一致是通过php -v从命令行运行,我显示的是PHP版本5.3.15 - 而Web服务器似乎正在运行5.4.17. 我下载了5.4.17来编译mcrypt.

基本上,一切都按计划运行直到最后.我没有将共享扩展安装到新目录中/usr/lib/php/extensions/no-debug-non-zts-20100525,而是收到一条消息:

Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20090626/

编辑:

问题似乎是Web服务器的PHP使用模块API编译:20100525并且系统仍在使用5.3.15(这是API:20090626),因此出错.

我假设你不能(轻松)更新PHP的系统版本.要使模块和PHP API匹配,我需要做什么?

在此先感谢您的帮助.

php macos mcrypt osx-mavericks

3
推荐指数
1
解决办法
5399
查看次数

简单的PHP加密/解密(Mcrypt,AES)

我正在寻找使用Mcrypt的简单但加密强大的AES实现AES.

希望将其归结为一对简单的功能,$garble = encrypt($key, $payload)以及$payload = decrypt($key, $garble).

php encryption cryptography aes mcrypt

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

安装Laravel时出错:需要Mcrypt PHP扩展

我知道在SO上有很多关于这个的问题,但没有一个能解决我的问题.我已经检查了他们提到的一切似乎表明mcrypt没问题,除非安装Laravel.显然我错过了一些东西.

当按照指示(composer create-project laravel/laravel myproj --prefer-dist)安装Laravel时,我在接近安装结束时收到错误"需要Mcrypt PHP扩展".

据我所知,mcrypt 安装并启用.

作曲家使用 /usr/bin/env php

$ which composer       
/usr/local/bin/composer

$ cat /usr/local/bin/composer
#!/usr/bin/env bash
/usr/bin/env php -d allow_url_fopen=On -d detect_unicode=Off /usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar $*%   
Run Code Online (Sandbox Code Playgroud)

我的PATH上的php是来自MAMP的5.5.10

$ php --version
PHP 5.5.10 (cli) (built: Apr 10 2014 17:49:22)

$ which php
/Applications/MAMP/bin/php/php5.5.10/bin/php   
Run Code Online (Sandbox Code Playgroud)

Mcrypt已安装并启用

$ php -m | grep mcrypt
mcrypt

$ php --info | grep mcrypt                  
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => …
Run Code Online (Sandbox Code Playgroud)

php mamp mcrypt laravel composer-php

3
推荐指数
1
解决办法
8536
查看次数

在Laravel中设置加密密钥会导致注销

我需要用于后续Crypt::encrypt()Crypt::decrypt()调用的密钥,但仅限于当前请求.

    Crypt::setKey('1');
    $pin_code   = Crypt::encrypt($pin_codes[$key]);
Run Code Online (Sandbox Code Playgroud)

//它进行加密然后自动注销

可能是什么问题?

php encryption mcrypt laravel

3
推荐指数
1
解决办法
1324
查看次数