标签: mcrypt

我的C#和PHP解密方法有何不同?

我继承了一些C#代码,需要将它移植到PHP.这里是:

string key = "some key";
string strEncrypted = "some encrypted string";

byte[] hashedKey = new MD5CryptoServiceProvider().ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
byte[] strToDecrypt = Convert.FromBase64String(strEncrypted);

TripleDESCryptoServiceProvider tripleDES = new TripleDESCryptoServiceProvider();
tripleDES.Key = hashedKey;
tripleDES.Mode = CipherMode.ECB;

string strDecrypted = UTF8Encoding.UTF8.GetString(tripleDES.CreateDecryptor().TransformFinalBlock(strToDecrypt, 0, strToDecrypt.Length));
Run Code Online (Sandbox Code Playgroud)

我的PHP代码如下所示:

$key = 'some key';
$str_encrypted = 'some encrypted string';

$hashed_key = md5($key, TRUE);
$str_to_decrypt = base64_decode($str_encrypted);

// The IV isn't used for ECB, but it prevents a warning.
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_ECB), MCRYPT_RAND); 

$str_decrypted = mcrypt_decrypt(MCRYPT_TRIPLEDES, $hashed_key, $str_to_decrypt, MCRYPT_MODE_ECB, $iv);
Run Code Online (Sandbox Code Playgroud)

但是这两个解密的值并不相同,我无法弄清楚原因.我在这里和其他地方已经阅读了很多类似的问题,但它们似乎都没有解释我遇到的问题. …

php c# cryptography mcrypt

6
推荐指数
1
解决办法
1761
查看次数

在Java中使用mcrypt(在PHP中)的任何等价物?

任何人都可以告诉任何可以在java中使用的库,如果使用mcrypt库在PHP中完成操作,则可以得到相同的结果.

我想实际使用AES加密Java中的字符串,并在PHP中解密它.Java Cipher会在PHP中通过mcrypt产生加密解密吗?

编辑:

在Web中找到了一些resin-3.1库.是真的吗?

php java encryption mcrypt

6
推荐指数
1
解决办法
4741
查看次数

mcrypt性能

我正在加密一些数据,并在系统之间的srcipt运行时间中获得截然不同的结果.

在win7机器上运行我的算法,加密在3-8千秒内完成.

linux上的相同代码(ubuntu11和debian6盒子)需要7到35个SECONDS.

这对我的需求来说并不是真的可以接受,并且想知道是否有任何善良的人可以放弃任何光明.

相关代码如下:

<?php

class MyEncryption
{
    public function __construct( $keyData )
    {
        $this->_encryptInit( $keyData );
    }

    private function _encryptInit( $keyData )
    {
        $this->ch = mcrypt_module_open('rijndael-256', '', MCRYPT_MODE_ECB , '');

        $vector  = mcrypt_create_iv (mcrypt_enc_get_iv_size( $this->ch ), MCRYPT_DEV_RANDOM );
        $keySize = mcrypt_enc_get_key_size( $this->ch );

        $key = substr( hash('SHA512', $keyData . $keySize ), 0, $keySize );

        mcrypt_generic_init( $this->ch, $key, $vector );
    }

    private function _encryptClose()
    {
        mcrypt_generic_deinit( $this->ch );
        mcrypt_module_close( $this->ch );
    }

    public function encryptData( $data )
    {
        $safeData …
Run Code Online (Sandbox Code Playgroud)

php linux mcrypt

6
推荐指数
1
解决办法
784
查看次数

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 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
查看次数

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
查看次数