我只是将我的更新到 Mac OS X Mojave。我的本地站点现在停止加载。
我不断得到
需要 Mcrypt PHP 扩展。
我试过
brew update
brew upgrade
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
brew install php54-mcrypt
php --version // To Test your php
Run Code Online (Sandbox Code Playgroud)
我有
错误:php54-mcrypt:无法加载此类文件 -- /usr/local/opt/php54-mcrypt/Abstract/abstract-php-extension
我尝试重新加载我的网站
我仍然得到这个
需要 Mcrypt PHP 扩展。
我的设置详情
php --version,我有
PHP 7.1.4 (cli) (built: May 6 2017 10:02:00) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.4, Copyright (c) 1999-2017, by Zend Technologies …Run Code Online (Sandbox Code Playgroud) 我很擅长这个.当我认为一个好的教程会做得更好时,试图理解PHP.net上mcrypt的手册页.所以我没有任何实质性的搜索.
我还尝试了使用mcrypt使用2个函数执行加密和解密的一个示例,但它给出了"密钥大小对于此算法来说太大"的警告.
任何人都可以请我写一个双向类来使用mcrypt进行加密/解密,这样我就可以理解库了吗?谢谢!
我真的很难解密PHP中给定的密文,我希望你们中的一个能够找到我在这个问题上的错误.
所以这是我正在尝试解码的字符串
Wq+J2IlE7Cug1gJNiwy1beIcFggGhn+gZHkTCQ4J/DR3OY45OMs4RXN850xbfAmy
Run Code Online (Sandbox Code Playgroud)
我知道用AES/CBC/PKCS5Padding加密了IV
2ZqVSHjqn3kMump0rvd8AA==
Run Code Online (Sandbox Code Playgroud)
我会根据要求给你发电子邮件.
public static function aes128cbcDecrypt($key, $encrypted_text, $iv)
{
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_192, '', MCRYPT_MODE_CBC, '');
mcrypt_generic_init($td, $key, $iv);
$decrypted = mdecrypt_generic($td, $encrypted_text);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return trim($decrypted);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行时,我得到完全的胡言乱语
ã5‡³/.3p›¤ý°$² —ïÅ»<9 ‘m ê|Ÿ.ÂYº|Šû^w¬¾‚=l“½·F›VársT~ê H?ÿfß]7ñH
Run Code Online (Sandbox Code Playgroud)
同样,当我加密已知的纯文本时,我得到了一堆乱码而不是ascii字符串.
† —4†º¢V?Öæƒ{ Zsöœl ò°Þ
PegöE&£á=Ǻ܀
Run Code Online (Sandbox Code Playgroud)
你有没有想到我出错的地方?
我正在使用linux/ubuntu.我发现mcrypt自动包含在这个平台中的库中.我想用aes 256和cbc padding 7(iv)创建加密.有人可以给我一个例子,说明如何使用aes 256和cbc iv,padding 7加密字符串?
Rijndael和aes一样.
这是我在想要使用的库中找到的链接:http://linux.die.net/man/3/mcrypt
我想在PHP中创建一个随机的int和字符串,所以我决定使用mcrypt_create_iv.它是用手写的,它使用/ dev/random和/ dev/urandom来实现随机性,但我找不到一个关于如何使用这个函数生成随机Int和String的简单教程.我尝试了一些代码,但是这个函数给了我不可读的字符.那么请你给我一个简单的例子说明我可以正确使用它吗?
我正在使用Delphi 2009,我在这里看到的大部分答案都是针对2010+我尝试将加密(delphi)同步到解密(php)并失败.
在delphi中生成加密的字符串:
program Project4;
{$APPTYPE CONSOLE}
uses
SysUtils,
DCPcrypt2,
DCPsha1,
DCPblockciphers,
DCPdes,
EncdDecd;
var des: tdcp_des;
enc,dec: ansistring;
begin
try
des:=tdcp_des.Create(nil);
des.InitStr('test', tdcp_sha1);
enc:=encodestring(des.EncryptString('this is a test'));
des.Free;
des:=tdcp_des.Create(nil);
des.InitStr('test', tdcp_sha1);
dec:=des.DecryptString(decodestring(enc));
des.Free;
writeln(enc);
writeln(dec);
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.
Run Code Online (Sandbox Code Playgroud)
在php中解密:
<?php
function decrypt($str, $key)
{
$size = mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
$data = base64_decode($str);
$block = mcrypt_get_block_size('des', 'ecb');
$k = substr(sha1($key), 0, $block);
$str = mcrypt_decrypt(MCRYPT_DES, $k, $data, MCRYPT_MODE_CBC, $iv);
$pad …Run Code Online (Sandbox Code Playgroud) 我想使用mcrypt创建一个256位令牌来设置为用户的cookie.
我已经阅读了一些建议使用mcrypt DEV_RANDOM的文章
我正在使用代码
$size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
$iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
Run Code Online (Sandbox Code Playgroud)
但是当我输出令牌时我得到的结果是
?w????:z???{d
Run Code Online (Sandbox Code Playgroud)
这是它应该是什么样子?不,我不需要做什么来生成一个合适的令牌.
谢谢
我正在尝试使用 Laravel 的Crypt功能,简单地将一个值存储在数据库中并稍后获取以使用。但是我注意到我无法解密这个值。
我的应用程序密钥是一个随机的 32 个字符的字符串。我的密码是MCRYPT_RIJNDAEL_128. 从 PHP 信息来看,已经安装了 MCRYPT,并且支持 RIJNDAEL_128。
为了测试,我在 GET rou 上执行以下操作:
$t = "123456789";
var_dump(Crypt::encrypt($t));
Run Code Online (Sandbox Code Playgroud)
见:http : //laravel.io/bin/2e9Xr#
在每次页面刷新时,输出都是不同的值,这显然是不正确的 - 但我不知道为什么。
我使用EasyPHP作为我的开发服务器。然而,我注意到的一件事是,与生产环境中的 Apache Web 服务器相比,应用程序请求在此环境中明显变慢。
这让我想知道是否每次都进行某种环境刷新,可能会重置 MCRYPT 用于加密的“资源”,因此每次都不同。
有什么线索吗?
我只是想加密和解密一个字符串.但是当我输出解密的字符串时,我只得到:
??
^????V??_??n?.ZZ?????:?2??
Run Code Online (Sandbox Code Playgroud)
我的代码:
function encrypt($string, $secret_key = "ATRTHTRAGSFRSGTS") {
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
return mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secret_key, $string, MCRYPT_MODE_CBC, $iv);
}
function decrypt($string, $secret_key = "ATRTHTRAGSFRSGTS") {
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
return mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $secret_key, $string, MCRYPT_MODE_CBC, $iv);
}
$text = 'This is a test.';
$enc = encrypt($text);
$dec = decrypt($enc);
echo $dec;
Run Code Online (Sandbox Code Playgroud)
任何想法都可能出错?
我正在创建一个随机密钥,然后我想使用一个好的算法加密它,然后我想用这个加密的密钥加密数据.我的代码是:
$iv=16; //128bits
$datakey = base64_encode(openssl_random_pseudo_bytes($iv,$strong));
$datakey = md5($datakey);
$finaldata= mcrypt_encrypt(MCRYPT_BLOWFISH, $datakey, $stringtobeencoded, MCRYPT_MODE_CFB);
Run Code Online (Sandbox Code Playgroud)
错误:
加密模式需要大小为8的初始化向量
如何完成我的要求?