确认你的linux没有安装mcrypt库,如果已安装,跳过安装步骤 [root@test-206 ~]# yum list installed|grep mcrypt libmcrypt.x86_64 源码编译安装 去http://www.sourceforge.net下载Libmcrypt,mhash,mcrypt安装包 libmcrypt(libmcrypt-2.5.8.tar.gz ): mcrypt /configure #make #make install 安装mcrypt #tar -zxvf mcrypt-2.6.8.tar.gz #cd mcrypt-2.6.8 #LD_LIBRARY_PATH /configure #make #make install 最后,还是检查下,是否安装成功 安装php的mcrypt扩展(动态加载编译) 下载php下的mcrypt扩展或者直接下载php的完整安装包 ]# echo 'extension=mcrypt.so' > mcrypt.ini 重启apache,查阅phpinfo,mcrypt模块扩展是不是加载了?
如果使用php自带的加密算法,其中需要这个mcrypt扩展,各种编译通不过。。 后来干脆下在一个 【点击下载mcrypt.so】 然后修改 sudo vi /etc/php.ini 添加:(记住把你下载那个so放在这个目录里面!) extension_dir=”/usr/lib/php/extensions/no-debug-non-zts-20090626/” extension=mcrypt.so 然后重启apache即可
从 PHP 7.0 升级到 PHP 7.1 废弃了一个在过去普遍应用的扩展(mcrypt),但是微信官方提供的消息加密解密算法中的核心部分中确实使用 mcrypt 的,Prpcrypt class 的加密方法
Mcrypt 介绍 Mcrypt 是 PHP 的一个扩展,完成了常用加密算法的封装,mcrypt 库提供了对多种块算法的支持, 包括:DES,TripleDES,Blowfish (默认), 3-WAY 可以使用 mcrypt_list_modes() 函数列出当前环境支持的模式,以及使用 mcrypt_list_algorithms() 列出当前环境支持的算法。 ($module); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); mcrypt_generic_init($module, $this-> key, $iv); $encrypted_text = mcrypt_generic($module, $text); mcrypt_generic_deinit($module); mcrypt_module_close ($module); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); mcrypt_generic_init($module, $this->
PHP中Mcrypt php $key = "__Joyous__";// key $iv = "23joyous";// IV $input = "id=123";// 加密的字符串 $bit_check (MCRYPT_TRIPLEDES,'','cbc',''); mcrypt_generic_init($cipher, $key, $iv); $decrypted = mcrypt_generic( $cipher,$text); mcrypt_generic_deinit($cipher); $return = base64_encode($decrypted); $return = str_replace (MCRYPT_TRIPLEDES,'','cbc',''); mcrypt_generic_init($cipher, $key, $iv); $decrypted = mdecrypt_generic ($cipher,base64_decode($encrypted_text)); mcrypt_generic_deinit($cipher); $last_char=substr($decrypted
PHP的Mcrypt加密扩展知识了解 今天我们来学习的是 PHP 中的一个过时的扩展 Mcrypt 。 ($td), MCRYPT_DEV_URANDOM); @mcrypt_generic_init($td, $key, $iv); $encrypted_data = @mcrypt_generic($ 使用 mcrypt_generic() 生成加密结果,使用 mcrypt_generic_deinit() 结束生成初始化,最后通过 mcrypt_module_close() 关闭加密模块句柄。 @mcrypt_get_iv_size( $algorithm, MCRYPT_MODE_CBC ); $iv = @mcrypt_create_iv( $iv_length, MCRYPT_RAND 然后直接使用 mcrypt_encrypt() 和 mcrypt_decrypt() 来进行加/解密就可以了,是不是方便很多。 总结 相对于 Hash 来说,Mcrypt 是可解密的对称加密形式。
' == MCRYPT_RIJNDAEL_128 // 'rijndael-192' == MCRYPT_RIJNDAEL_192 // 'rijndael-256' == MCRYPT_RIJNDAEL _256 注意:mcrypt 虽然支持 AES 三种算法,但除 MCRYPT_RIJNDAEL_128 外, MCRYPT_RIJNDAEL_192/256 并未遵循 AES-192/256 标准进行加解密的算法 AES 固定使用 MCRYPT_RIJNDAEL_128 通过 key 的长度来决定具体使用的具体何种 AES $mcrypt_cipher = MCRYPT_RIJNDAEL_128; $mcrypt_mode PHP_EOL; var_dump(user_mcrypt_decrypt($data, $key, $iv, $mcrypt_cipher, $mcrypt_mode, false, false)); PHP_EOL; var_dump(user_mcrypt_decrypt($data, $key, $iv, $mcrypt_cipher, $mcrypt_mode, false, true));
打开phpmyadmin提示:无法载入 mcrypt 扩展,请检查 PHP 配置错误,出现以下几种情况后可能会造成运行phpmyadmin程序提示“无法载入 mcrypt 扩展,请检查 PHP 配置”的 3、在C:windows目录下的php.ini文件中,没有将“;extension=php_mcrypt.dll”中的前面一个“;”去 掉,所以不能使用相应功能,解决方法是打开php.ini文件,找到 ;extension=php_mcrypt.dll 改成 extension=php_mcrypt.dll,去掉前面的;使之生效 linux系统下解决办法 一:无法加载 mcrypt扩展,请检查您的 PHP 配置 sudo apt-get install libmcrypt4 php5-mcrypt //安装libmcrypt sudo /etc/init.d/apache2 restart //重启
今天使用Centos 6.2搭建LAMP环境,使用最小化安装,然后自己找到rpm安装了php、mysql、apache,配置了PHPmyadmin,打算进数据库看看,结果。。 页面提示:缺少mysqli扩展,安装了扩展又提示mbstring缺少。。。(我勒个去,rpm安装真不舒服) 我于是就挨个搜集了rpm(先给大家说下,我搜集了很长时间的,也试过从其他机器上直接拷贝各种扩展结果不能使用) 由于我的php版本是5.3.3【点击下载PHP5.3.3rpm】 我就把所需的rpm全都下载下来了,大家不用再去找来找
当使用mcrypt_get_iv_size这个函数的时候 需要安装 php-mcrypt扩展 centos下 yum install php-mcrypt
前言 mcrypt 扩展已经过时了大约10年,并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。 从PHP 7.2起它将被从核心代码中移除并且移到PECL中。 PHP手册在7.1迁移页面给出了替代方案,就是用OpenSSL取代MCrypt.
Fatal error: Uncaught Error: Call to undefined function mcrypt_module_open() 对明文加密: 原代码: //获得16位随机字符串 $appid; // 网络字节序 $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $module = mcrypt_module_open (MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); $iv = substr($this->key, 0, 16); //使用自定义的填充方式对明文进行补位填充 this->key, $iv); //加密 $encrypted = mcrypt_generic($module, $text); mcrypt_generic_deinit($module); mcrypt_module_close (MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); $iv = substr($this->key, 0, 16); mcrypt_generic_init(
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, ''); $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);//MCRYPT_DEV_URANDOM mcrypt_generic_init($td, $key, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); (mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB), MCRYPT_RAND);//MCRYPT_DEV_URANDOM $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $sKey, base64_decode($sStr), MCRYPT_MODE_ECB, $iv);
des加密是对称加密中在互联网应用的比较多的一种加密方式,php 通过mcrypt扩展库来支持des加密,要在Php中使用des加密,需要先安装mcrypt扩展库 1 $iv_size = mcrypt_get_iv_size (MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 2 $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 3 $key = " "\n"; 6 7 $crypttext =base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB ,$iv);//解密后的内容 在AES加密算法中通常会用到MCRYPT_RIJNDAEL_128、MCRYPT_RIJNDAEL_192、MCRYPT_RIJNDAEL_256三种,后面的128、192 $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, ''); 7 $iv = mcrypt_create_iv
('des','', MCRYPT_MODE_CBC,''); $key=substr(md5($key),0,mcrypt_enc_get_key_size($module)); srand (); $iv=mcrypt_create_iv(mcrypt_enc_get_iv_size($module), MCRYPT_RAND); mcrypt_generic_init($module ,$key,$iv); $encrypted=$iv.mcrypt_generic($module,$data); mcrypt_generic_deinit($module); mcrypt_module_close (mcrypt_generic($td, $value)); mcrypt_generic_deinit($td); mcrypt_module_close($td); return $ret; } /** *解密 public function decrypt ($value) { $td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC
没想到的是,官网的php代码居然使用着php7废弃的函数Mcrypt,这就导致了使用了php7.2及以上的版本程序上报错。 ? 然后就使用了open_ssl替代解决方案。
('tripledes', '', 'ecb', ''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND ); mcrypt_generic_init($td, $key, $iv); $encrypted_data = mcrypt_generic($td, $input) ; mcrypt_generic_deinit($td); mcrypt_module_close($td); return trim(chop(base64 (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); mcrypt_generic_init($td, $key, $iv); $decrypted_data = mdecrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td
(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = Security::pkcs5_pad($input, $/ /size); $td = mcrypt_module_open (MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, ''); $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td ), MCRYPT_RAND); mcrypt_generic_init($td, $key, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit ($td); mcrypt_module_close($td); $data = base64_encode($data); return $data; } private static ( MCRYPT_RIJNDAEL_128, $sKey, base64_decod/ /e($sStr), MCRYPT_MODE_ECB ); $dec_s = strlen($
图片.png CentOS下php安装mcrypt扩展 (以下步骤均为本人实际操作,可能与你的安装方法有所区别,但我会尽量排除疑惑) 大致步骤(1)安装mcrypt,(2)安装php对mcrypt 的扩展,(3)重启apache (1)、确认你的linux没有安装mcrypt库,如果已安装,跳过安装步骤 [root@test-206 ~]# yum list installed|grep mcrypt libmcrypt.x86_64 2.5.8-4.el5.centos installed libmcrypt-devel.x86 _64 2.5.8-4.el5.centos installed mcrypt.x86_64 103 k libmcrypt-devel x86_64 2.5.8-4.el5.centos extras 10 k mcrypt
(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = $this->pkcs5_pad($input, $size); $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, ''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size ($td), MCRYPT_RAND); mcrypt_generic_init($td, $this->key, $iv); $data = mcrypt_generic ($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); $data = (MCRYPT_RIJNDAEL_128,$this->key,base64_decode($sStr), MCRYPT_MODE_ECB); $dec_s = strlen($decrypted