Rijndael 256在c#和php之间加密/解密?
更新 我已经对C#代码进行了更改,因此它使用了256的块大小.但是现在Hello World看起来像 http://pastebin.com/5sxhmv11 我无法弄清楚我应该在rtrim()中使用什么来在最后骑行. 当您说IV应该是随机的时,您的意思是您不使用一次iV,或者是我编码错误的方式吗? 再次感谢! 嗨, 我试图用C#加密的PHP解密字符串.我似乎无法使用McRypt解密它,可以帮助您做一些帮助.我在PHP中遇到以下错误,所以我猜我没有正确设置IV. 错误:IV参数必须与blocksize 一样长 这两个函数都使用相同的密码,键,iv和设置为CBC模式: c#= umzucnazthh0nmkiumisqg == 的加密文本 钥匙32 long = qwertyuiopasdfghjklzxcvbnmqwerty iv 16 long = 1234567890123456 c# public static
0 2024-04-11
编程技术问答社区
libmcrypt不可靠吗?
几天前,我提出了一个问题,没有任何有意义的答案. Bellow是简短的: 我在C中有一个客户端服务器程序,该程序使用McRypt C的库加密数据.客户端对想要发送到服务器的字符串进行加密,并在服务器读取后,将其解密.波纹管是我的加密和解密功能: 加密功能: void encrypt(char *es, char *key, char *civ, size_t length) { MCRYPT td; int n; td = mcrypt_module_open(MCRYPT_TWOFISH, NULL, MCRYPT_CFB, NULL ); if (td == MCRYPT_FAILED) { log_err(log_opts, strerror(errno)); exit(1); } n = mcrypt_enc_get_iv_size(td); char iv[n +
0 2024-04-09
编程技术问答社区
AES加密的结果只有部分数据是正确的(使用mcrypt lib)。
我从 https://gist.github.com/2436364 下载了AES加密的示例代码. 我修改了源代码的一部分,以满足我的项目要求如下: #include #include #include #include #include #include int encrypt(void* buffer, int buffer_len, char* IV, char* key, int key_len){ MCRYPT td = mcrypt_module_open("rijndael-128", NULL, "cbc", NULL); int blocksize = mcrypt_enc_get_block_size(td); if( buffer_len % blocksize != 0 ) return 1; mcrypt
0 2024-04-09
编程技术问答社区
编写php MCrypt twofish for c# bouncycastle
我正在学习如何使用Bouncycastle C#密码库进行加密.我不想发送消息,所以我没有考虑安全等. 我已经在Visual Studio中写了C#代码. 这是问题所在.我使用twofish在CFB模式下对文本" Hello World!"进行了加密.钥匙是1234567812345678.我已经使用了phpfiddle $algo = 'twofish'; $mode = 'cfb'; $cipher = mcrypt_module_open($algo,'',$mode,''); $key = hex2bin('31323334353637383132333435363738'); //1234567812345678 $iv = hex2bin('00000000000000000000000000000000'); mcrypt_generic_init($cipher, $key, $iv); $plaintext = utf8_encode('Hello World!'
0 2024-04-03
编程技术问答社区
使用PHP和c#的Mcrypt和base64
我已经在两个平台上编写了相同的方法,我认为这应该会产生同样的事情,但没有发生.我已经用相同的键加密了相同的文本,从而不同.有人可以弄清楚为什么会发生吗? 字符串:这是测试 键: 1234567812345678 php加密字符串: ybuakwqlrnwojjhxlwtlyq == c#加密字符串: r2yjefpyddacnpmdfcgtla == c#函数 static string Encrypt(string plainText, string key) { string cipherText; var rijndael = new RijndaelManaged() { Key = Encoding.UTF8.GetBytes(key), Mode = CipherMode.ECB, BlockSize = 128, }; ICryptoTransform
0 2024-03-27
编程技术问答社区
PHP通过URL发送加密的数据
我试图将URL上的加密数据发送到另一个站点(使用file_get_contents("anotherUrl.php?hash=$encryptedString").有时,加密包含一些特殊字符,例如 +,这会导致解密失败. 这是我的加密/解密方法: public function encrypt($string, $key) { return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key)))); } public function decrypt($encrypted, $key) { return rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5(
4 2024-03-27
编程技术问答社区
authToken加密与urlencoding/urldecoding和.htaccess问题
使用URL编码/urldeCoding和.htaccess文件进行加密时,如何生成令牌. 我也启用了.htaccess,它遇到了此URL中提到的JavaScript/PHP通信问题. 根据帖子的建议,我不能两次urlencode,因为前端系统不在我的控制之下, RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L] . class Crypt { public static function encrypt($data, $secret) { $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($iv_size,
0 2024-03-20
编程技术问答社区
MembershipProvider.GetPassword算法
我们将ASP站点(使用dotnetnuke)转换为新的PHP站点.我们现在唯一拥有的是现有数据库的完全导出.其中一张表称为" Aspnet_membership",包含以下字段: 密码(看起来像base64) passwordformat(始终值2) 密码萨尔特(看起来像base64) 密码问题(始终为空) passwordanswer(始终为空) 我们想解码这些密码并将它们放置以适合我们自己的框架.据我从.NET文档中理解的这些密码可以解密.是否有可以做到这一点的算法,还是比这更复杂?如果我们在当前服务器上创建一个ASP脚本,是否可以? 预先感谢 解决方案 我认为2表示"加密",而不是"哈希"(请参阅​​定义在这里) 加密意味着您实际上可以解密它,但是您需要在配置文件中存储的机器密钥(查看我发送的链接),其中创建了这些密码的物理计算机.如果您只有数据库的副本,则无法做到. 其他解决方案 不幸的是,您在密码Format中的2值告诉我们,这些
2 2024-03-12
编程技术问答社区
用protection=validation解密.ASPXAUTH Cookie
有一段时间,我一直在尝试解读ASP .aspxauth cookie并使用PHP解密.我的原因很大,我需要这样做,别无选择.到目前为止,在PHP中,我已经成功地读取了此cookie的数据,但是在加密时,我似乎无法这样做.无论如何,它去了... 首先,您需要更改服务器web.config文件(需要将保护设置为验证): 然后在同一域上的PHP脚本中,您可以做以下内容以读取数据,这是一个非常基本的示例,但是证明: $authCookie = $_COOKIE['_ASPXAUTH']; echo 'ASPXAU
2 2024-03-08
编程技术问答社区
Mcrypt已经安装,但在PHPINFO上没有显示出来
我认为我设法安装了McRypt Lib.这些文件已经到位,但看起来库根本不运行. 尝试添加: extension=mcrypt.so to php.ini;不好.有帮助吗? 解决方案 您是否尝试过重新启动Apache?在您这样做之前,它不会识别新的已安装模块.另外,您已经写了"思考"已经安装了它 - 您是否使用EG Apt -Get或Yum安装它(例如apt-get install php-mcrypt)或只是下载它? 其他解决方案 实际上有人在Ubuntu OS上寻找答案的人大于13,您必须运行 php5enmod mcrypt 然后重新启动apache.这是新的,并且遵循您还将使用的路线来启用Apache模块. 其他解决方案 我也有同样的问题. 有时添加/etc/php.d/mcrypt.ini 时它不起作用 将其添加到/etc/php.ini中,主要php配置文件 重新启动apache 你完成了.
4 2024-02-27
编程技术问答社区
在Laravel中需要Mcrypt PHP扩展
我正在尝试在Linux Ubuntu上安装Laravel.我正在运行Ubuntu 14.10. 一切都很好.但是现在,我没有在访问Localhost时获得所谓的页面,而是收到消息: " 需要MCRYPT PHP扩展 " 我正在复制终端中的一些信息,以帮助查明问题. which php /usr/bin/php php --ini Configuration File (php.ini) Path: /etc/php5/cli Loaded Configuration File: /etc/php5/cli/php.ini Scan for additional .ini files in: /etc/php5/cli/conf.d Additional .ini files parsed: /etc/php5/cli/conf.d/05-opcache.ini, /etc/php5/cli/conf.d/10-pdo.ini, /etc/php5
2 2024-02-27
编程技术问答社区
使用未定义的常数 MCRYPT_BLOWFISH
重新安装我们的服务器后,MCRYPT不再工作,PHP发出通知 使用未定义的常数MCRYPT_BLOWFISH(Apache 2.4,PHP 5.5). php -m返回mcrypt. ls -al /etc/php5/apache2/conf.d/ 20-mcrypt.ini -> ../../mods-available/mcrypt.ini cat /etc/php5/mods-available/mcrypt.ini ; configuration for php MCrypt module extension=mcrypt.so 为什么mcrypt未识别?我该如何做这项工作? 解决方案 我很快就会说我找到解决方案,嗯. 这对我有用: ubuntu升级后不存在mcrypt至13.10 P> 需要去: sudo php5enmod mcrypt 即使似乎已经启用了它,也已修复. 其他解决方案 当我尝试启用Express PayPa
2 2024-02-27
编程技术问答社区
升级到El Capitan操作系统后在Mcrypt中出现错误
我刚刚将OS升级到El Capitan.我必须对Apache配置进行一些更改,以使一切都像以前一样有效. 感谢 - 对我不起作用的一件事是McRypt扩展.有人知道如何更新它以使其工作吗? 解决方案 可能是与新的系统完整性保护或" SIP" ? 也许可能会有助于检查/USR文件夹的许可并根据需要进行更改. 其他解决方案 升级到El Capitan后,McRypt.SO已从 移动 /usr/lib/php/Extensions/no-debug-non-zts-20121212 to /library/systemmigration/history/migration-(uuid)/quarantinerroot/usr/lib/php/php/extensions/no-debug-non-zts-20121212/mcrypt.so 要能够复制移动的文件,首先,您必须如下所述禁用SIP http://www.howtogeek.com/230
0 2024-02-27
编程技术问答社区
在PHP安装中启用Mcrypt
我使用Apache 2.2.16安装了Windows盒(通过.msi安装)上的PHP 5.2.14.安装随附ext/php_mcrypt.dll和libmcrypt.dll,但是当我不使用 extension = php_mcrypt.dll php.ini中的php.ini和重新启动的apache时,它就无法启用. phpinfo()什么都没有显示.我想念什么? 更新: 我查看了我的错误日志,它将其吐给我: PHP警告:PHP启动:无法加载动态库'C:\ php5 \ ext \ php_mcrypt.dll' - 找不到指定的模块. P> 我对此有所了解,但我没有存储在Windows32/文件夹中的任何PHP DLL,所以我很困惑. 解决方案 我通过教程的组合来弄清楚它: 将libmcrypt.dll添加到System32文件夹 在php.ini中毫不符合include_path var,并添加了ext 的路径 重新启动Apache 值得庆幸的
2 2024-02-27
编程技术问答社区
在OSX Mountain Lion上为PHP安装mcrypt扩展
对于潜在的N00B问题表示歉意,我正在尝试在我的OSX Mountain Lion机器上安装PHP的MCRypt扩展名. 我到目前为止已经完成了以下步骤,以实现我的php安装 cd /path/to/downloaded/php-5.3.21/ext/mcrypt/ /usr/bin/phpize ./configure cd /path/to/downloaded/php-5.3.21 ./configure --with-config-file-path=/private/etc/php.ini --with-apxs2=/usr/sbin/apxs make sudo make install 似乎运行良好,并安装了PHP 5.3.21罚款.然后我做了 sudo nano /private/etc/php.ini ,包括 extension=mcrypt.so 与Apache重新启动一起,phpinfo()未显示MCRypt扩展名. 然后,
2 2024-02-27
编程技术问答社区
通过URL参数发送一个加密的字符串--解码后的文本被篡改了
我正在使用一个简单的授权方案.我认为,没有SSL或其他HTTP Auth的最简单方法是共享的密钥加密.从PHP手册中调整一个简单的示例,我想到了以下内容: $text = "boggles the invisible monkey will rule the world"; $key = "This is a very secret key"; $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $text, MCRYPT_MODE_ECB, $iv); $iv = base64_encode($iv); $enc = base64_encode($enc); echo '
2 2024-01-21
编程技术问答社区
用openssl代替mcrypt在PHP中解密AES-256-CFB
以下功能正确地解密了php5中的数据 function decrypt_mcrypt($key, $str) { $str = base64_decode($str); $iv = substr($str, 0, 16); $str = substr($str, 16); return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_CFB, $iv); } 我尝试使用openssl而不是mcrypt(在php7中),但在输出上有垃圾. function decrypt_openssl($key, $str) { $str = base64_decode($str); $iv = substr($str, 0, 16); $str = substr($str, 16); return openssl_decrypt($str, 'AES-256-CFB', $key, OP
10 2024-01-19
编程技术问答社区
当在PHP中使用AES加密时,应该把密码钥匙存放在哪里?
我在我的Web应用程序中实现AES-256位EncrpyTion: http:///www.utoxin.名称/2009/07/自动db-field-cakephp/ 说的一个步骤之一是将使用的密码和键存储在Boostrap文件中.但是,是什么阻止某人使用PS或其他内容扫描文件系统并解密数据? 保护数据的最佳方法是什么? 解决方案 如果某人可以访问服务器硬盘上的所有文件,则所有赌注都关闭.然后,您无法保护您的数据,因为您的WebApp仍然必须能够访问它. 此加密只会保护您免受可以访问数据库但不能访问文件系统的攻击者的影响.通过SQL注入.即使在那种情况下,他们也可能能够读取数据:根据特定泄漏,WebApp可能会为他们愉快地解密! 其他解决方案 (我意识到这是一个古老的问题,但是作为链接的博客文章的作者,我想添加一些评论) 接受的答案说的是正确的.一旦您的文件系统遭到损害,就没有保护.另外,是的,如果写得不好,则可以以未加密形式揭示数据.该工具
2 2024-01-19
编程技术问答社区