标签: mcrypt

PHP的mcrypt_decrypt()需要什么?

我有一个使用mcrypt_decrypt()函数的脚本,但是我收到以下错误

致命错误:调用未定义的函数mcrypt_decrypt()

我需要包含哪些模块/库才能使用此功能?还是有另一个原因我收到错误?

谢谢

php mcrypt

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

URL中的加密数据

我正在开发一个PHP应用程序来管理公司的订单.要查看URL当前的订单/orders/view/3502.

我不希望订单ID号出现在URL中,因此我使用CodeIgniter的加密库来加密URL中的ID.URL(加密后)看起来像/orders/view/AaffGdQQ.

我遇到的问题有时加密ID包含正斜杠或加号,在URL中无法正常工作.CodeIgniter基于斜杠读取URL,因此,如果加密的ID有斜杠,它将读取为2个变量,而不是一个.此外,加号会被解释为URL中的空格.

所以,我的问题是,如何加密ID并确保字符串不包含加号或斜杠?

编辑:我有一个想法,看看加密的ID是否包含斜杠或加号,如果是,则再次加密.出于某种原因,每次ID被加密时,它都是不同的,所以这会起作用.

php codeigniter mcrypt

5
推荐指数
1
解决办法
4300
查看次数

PHP的Mysql和Mcrypt问题

我已经看过几次了,但不知道我将如何在这里问它...希望你们好.

基本上我有这个脚本工作正常,将毫不费力地打印我的结果:

$algorithm = MCRYPT_BLOWFISH;
$mode = MCRYPT_MODE_CFB;
$iv = mcrypt_create_iv(mcrypt_get_iv_size($algorithm, $mode), MCRYPT_DEV_URANDOM);
$key = 'Wassup';
$data = 'I am a guy';

$enc_data = rtrim(mcrypt_encrypt($algorithm,$key,$data,$mode,$iv));
$plain_text = base64_encode($enc_data);
echo $plain_text . "\n";

// OUTPUTS: 6m3D5qSrfz3w6pKuuybs

$enc_data = base64_decode($plain_text);
$decoded = mcrypt_decrypt($algorithm,$key,$enc_data,$mode,$iv);
echo $decoded;

// OUTPUTS: I am a guy
Run Code Online (Sandbox Code Playgroud)

太棒了.现在......而不是只是立即输出我输入的内容,我试图将该信息存储在我的数据库中以便稍后解密.

我可以在表格行中看到加密的字符串:6m3D5qSrfz3w6pKuuybs.所以,我相信它会很好......

当我查询它出来时它看起来是一样的,但现在当我解码和解密时我会得到类似的东西:ÝÄ/ $ÍñËt05883700

表字段设置为VARCHAR(255)utf8_general_ci.这是问题所在吗?

php mysql mcrypt

5
推荐指数
1
解决办法
2526
查看次数

PHP mcrypt到ColdFusion解密

我在PHP应用程序中工作,我们有一个特定的字符串,我们需要在存储到数据库之前加密.我可以在PHP中使用带有密钥和iv的mcrypt没有问题.目前我正在尝试使用blowfish因为我认为在ColdFusion中解密它会是最灵活的.我遇到的问题是看起来ColdFusion似乎不想使用密钥或iv加密.ColdFusion希望你使用generateSecretKey()并使用其他方法来创建iv.

我似乎无法做的是让两人沟通.我首先尝试在coldFusion中加密并使用它生成的密钥,然后在PHP中使用它,但结果并非如此.我知道我必须遗漏一些东西,但我无法确定它可能是什么.

<?php
$securedString = mcrypt_encrypt ('MCRYPT_BLOWFISH' , 'THISISMYKEYTHATISVERYLONG32CHARS' , "This is the string I need encrypted' , MCRYPT_MODE_CBC , '12345678');
echo base64_encode($securedString);
?>
Run Code Online (Sandbox Code Playgroud)

那么等效的ColdFusion解密调用会是什么样的呢?

顺便说一句:如果Blowfish不是理想的算法,只要ColdFusion和PHP都可以使用它并且它是安全的,请随意建议另一个.

谢谢,布鲁斯

php coldfusion mcrypt coldfusion-8

5
推荐指数
1
解决办法
763
查看次数

在PHP安装上启用Mcrypt

我使用Apache 2.2.16在Windows机器上安装了PHP 5.2.14(通过.msi安装).安装附带了ext/php_mcrypt.dll和libmcrypt.dll但是当我在php.ini中取消注释extension = php_mcrypt.dll并重启Apache时它没有启用.phpinfo()没有显示任何内容.我错过了什么?

更新:

我查看了我的错误日志,它向我吐出:
PHP警告:PHP启动:无法加载动态库'C:\ PHP5\ext\php_mcrypt.dll' - 找不到指定的模块.\ r \n在第0行的未知中

我读了一下这个,我没有任何php dll存储在windows32 /文件夹中,所以我很困惑.

php apache mcrypt

5
推荐指数
1
解决办法
4万
查看次数

LAMP Laravel ErrorException mcrypt_get_iv_size():模块初始化失败

我在我的新电脑上安装了laravel,我收到了这个错误:

ErrorException mcrypt_get_iv_size():模块初始化失败

我从旧电脑上复制了这个项目.安装并启用了mcrypt,其他不使用laravel的页面正在运行.我正在运行ubuntu 14.04

我创建了一个新的laravel项目(使用laravel new命令),当我尝试访问时,我得到:

"哎呀,看起来像出事了."

我打开日志,错误是:

production.ERROR:带有'mcrypt_get_iv_size()消息的异常'ErrorException':模块初始化失败

有任何想法吗?

mcrypt laravel

5
推荐指数
2
解决办法
6128
查看次数

将OSX更新为"El Capitan"后未定义的函数mcrypt

将"Yosemite"更新为"El Capitan"后,我遇到了mcrypt扩展问题.

致命错误:在第68行的/Users/Pilipe/Sites/prestashop-test/classes/Rijndael.php中调用未定义的函数mcrypt_decrypt()

在我的php.ini中,我添加了这一行:

扩展= "/ USR /本地/地窖/ php56-mcrypt的/ 5.6.13/mcrypt.so"

当我启动此命令行时:

php -i | grep'mcrypt'

我有 :

已解析的其他.ini文件=> /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini已
注册的流过滤器=> zlib.,bzip2.,convert.iconv.,string.rot13,string.toupper,string.tolower,string.strip_tags,convert.消费,消遣,mcrypt.,mdecrypt.
PHP警告:未知:依赖系统的时区设置是不安全的.您需要使用date.timezone设置或date_default_timezone_set()函数.如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符.我们现在选择了时区'UTC',但请设置date.timezone以选择您的时区.在第0行的未知中
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value
PWD => /usr/local/Cellar/php56-mcrypt/5.6.13
_SERVER ["PWD"] => /usr/local/Cellar/php56-mcrypt/5.6.13

命令php -v:

PHP 5.6.13(cli)(建于2015年10月2日23:07:16)
版权所有(c)1997-2015 PHP Group
Zend Engine v2.6.0,版权所有(c)1998-2015 Zend Technologies

我安装了mcrypt:

brew安装php56-mcrypt

我这样做了:

brew链接php56-mcrypt

为什么mcrypt它无法正常工作?

先感谢您.
真诚的菲利普.

php mcrypt osx-elcapitan

5
推荐指数
1
解决办法
3975
查看次数

在运行PHP 7.1.0的MAMP上的Laravel 4.2中不推荐使用函数mcrypt_get_iv_size()

我刚刚升级了我的MAMP服务器以运行7.1.0.我现在在Laravel 4.2安装中出现此错误;

Function mcrypt_get_iv_size() is deprecated 
Run Code Online (Sandbox Code Playgroud)

我试过改变

'cipher' => MCRYPT_RIJNDAEL_128,
Run Code Online (Sandbox Code Playgroud)

'cipher' => 'AES-256-CBC',
Run Code Online (Sandbox Code Playgroud)

但无济于事.

有谁知道如何在Laravel 4.2中解决这个问题?

如评论中所述,不重复.

php mcrypt laravel laravel-4 php-7.1

5
推荐指数
1
解决办法
7218
查看次数

如何使用以前使用mcrypt加密的OpenSSL解密字符串?

由于mcrypt在PHP 7.1中已弃用,并且我在现有项目中使用mcrypt加密/解密了很多数据,因此如何将我的PHP代码从mcrypt迁移到OpenSSL?我有以下代码要加密:

$encoded = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, 'salt', 'source string', MCRYPT_MODE_ECB));
Run Code Online (Sandbox Code Playgroud)

解密代码为:

$source = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, 'salt', base64_decode('encoded string'), MCRYPT_MODE_ECB);
Run Code Online (Sandbox Code Playgroud)

openssl_在不进行编码数据转换的情况下,以上示例中应使用哪些函数来获得相同的结果?

还是唯一的方法是运行一个脚本,该脚本将使用mcrypt解密所有存储的加密数据并使用openssl进行编码?

谢谢

php mcrypt php-openssl

5
推荐指数
1
解决办法
1721
查看次数

如何在Docker上安装mcrypt

我有一个Docker容器与Phalcon3和PHP 7.我试图安装PHP扩展Mcrypt没有运气.

如果我对容器执行ssh,并执行:

apt-get update
apt-get install php7.0-mcrypt  
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

E: Unable to locate package php7.0-mcrypt
E: Couldn't find any package by regex 'php7.0-mcrypt'
Run Code Online (Sandbox Code Playgroud)

有没有办法安装它?

mcrypt php-extension docker

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