问题标签 [blowfish]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
565 浏览

c# - 我可以让 ProcessBytes 返回一个确切的金额吗?

我正在使用 BouncyCastel 制作 CfbBlockCipher 所以这里是代码。

所以...

如果我said ProcessBytes(buf, 0, 17)只返回 16,我也试过 DoFinal() 但它没有做它的工作!这取决于IBufferedCipher我应该使用IStreamCipher还是其他东西来获得 dec/enc-ing 的确切数量?而且我相信CfbBlockCipher不知何故坏了,或者我在这里做些破旧的事情。

0 投票
3 回答
2356 浏览

java - 为什么 Java 和 PHP 中的 Blowfish 输出仅相差 2 个字符?

我在 PHP 和 JAVA 中有一个河豚加密脚本,反之亦然,直到今天我遇到问题时它都可以正常工作。

相同的内容在 Java 和 PHP 中的加密方式不同,只有 2 个字符,这真的很奇怪。

PHP

爪哇

如您所见,这两个位置不匹配。不幸的是,这个值是一个真实的电子邮件地址,我不能分享它。我也无法用我测试过的其他几个值来重现这个问题。我尝试在 Java 上更改 Base64 编码类,但都没有帮助。

PHP的源代码在这里Java 的源代码在这里

我能做些什么来解决这个问题?

0 投票
1 回答
1153 浏览

java - 将 PHPMyAdmin MySQL 连接配置转换为 JDBC

我有 PHPMyAdmin 使用这些参数连接到远程 MySQL 服务器:

我正在尝试用 Java 连接到这个 MySQL 服务器,但这些都不起作用:

并且,删除“:3306”:

我收到此错误:

我认为它来自“blowfish_secret”(这只是一个随机 cookie)和“auth_type”=“cookie”在 Java 中没有被考虑。

我该如何解决?

另外,我是否需要告诉 MySQL 他必须接受与 jdbc 驱动程序对话?(如果是,我搞砸了,我无权访问 MySQL 配置文件)

0 投票
2 回答
7163 浏览

php - PHP Bcrypt 散列

我想使用Blowfish 散列来散列密码。

crypt()在 5.3 之前的 PHP 版本中不支持它

我的 PHP 版本是 5.2.14。如何使用 Blowfish 哈希?我可以用 PEARCrypt_Blowfish代替吗?

0 投票
3 回答
303 浏览

php - PHP.net 是“任何”PHP 参考的可靠资源吗?

修改我的“问题”,以免打扰当地人。

如今,互联网上似乎有很多资源(包括SO),找到问题的“答案”可能很容易,但是如何判断该答案是否有效甚至是最新的?

一个特别被问到的领域是如何使用 PHP 正确处理散列和加密,以便为数据库存储做准备。关于 SO 的一个常见答案似乎总是“你访问过 php.net 了吗?”。虽然我知道这通常涉及到有人提出最简单的问题的问题,但我开始发现一些描述似乎相互冲突,更重要的是,用户示例已经过时(2008-2009 年很多)。

例如:在寻找为什么以及如何使用密码哈希时:http ://www.php.net/manual/en/faq.passwords.php#faq.passwords.fasthash

总之,我了解到 sha1 和 md5 是快速且计算高效的哈希方法,它们不再适用于密码哈希。建议的方法是使用 crypt() 函数。

在了解有关 crypt() 尤其是河豚散列的更多信息时,页面上所述的规则如下:

http://www.php.net/manual/en/function.crypt.php

  • 从 $2a$ 开始我的盐
  • 继续使用两个数值(下面的用户已经说明了这一点的重要性,而 php.net 没有)
  • 跟着 $
  • 输入 22 个字母数字字符

进一步阅读给出了一个例子:

似乎同一页面上的示例不遵循它刚刚告诉我们使用的规则(“$2a$07$”之后的 26 个字符。

回报是:

河豚:
$2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi

本质上,字符串本身确实被改变了,但几乎我的整个 SALT 值(上面提到的前 22 个字符)都处于开放状态。这不会更简单地确定我的实际字符串是什么吗?

更重要的是,这只是一个例子,但归根结底,PHP.net 等资源的依赖程度有多大?

正如我的朋友 Mugatu 曾经说过的那样:“我觉得我正在服用疯狂的药丸”。

注意:上面提到的页面是自我最初发布以来编辑的,所以我不能保证自从我提供最初的问题和示例后事情没有改变。

0 投票
1 回答
1020 浏览

ruby-on-rails-3 - Ruby 1.9:gem crypt19:blowfish.encrypt_string:编码问题

我正在构建一个 Rails 应用程序,在其中将哈希序列化为 JSON,然后使用 gem crypt19 和河豚算法对哈希进行编码。我正在使用 Rails 3.0.9、Ruby 1.9.2 p180、最新的 crypt19 v1.2.1,我正在 Windows7 上开发。在我的 Rails 控制器中,我这样做:

我将 encrypted_thingy 分配给模型中的一个值(这是一个字符串),

但是当我保存模型时,它会在保存模型的位置引发参数错误异常。

(当我为它分配一个普通的旧字符串 @my_model="xxxxxxxx" 时,一切正常。

我最终的计划是通过模型将 encrypted_thingy 存储在数据库中,然后对其进行解密,解析出 JSON,并获取“thing”和“thang”的值。

搜索 'net 建议我需要更改编码,但不清楚我如何使用 crypt19/blowfish 编码的结果来做到这一点。

有没有办法像我存储的任何其他字符串一样将此加密字符串存储为字符串?

或者有没有办法应用一些魔法(以及可逆魔法)将那个时髦的字符串变成我可以在电子邮件中传递的真实字符串?

0 投票
2 回答
1963 浏览

php - 在 PHP 中解密 as3crypto 河豚数据时出错

我目前对 ActionScript 3 有点陌生,并且一直在尝试使用 as3crypto 库使用河豚算法加密一些数据,然后再将其提交给服务器进行处理。我知道您可以使用 https,但大多数浏览器仍会显示出站数据,这使得用户很容易伪造请求。这就是为什么我想让用户看到页面请求,但不解密就无法读取数据。

对我来说不幸的是,除了代码中的注释(没有太大帮助)之外,as3crypto 库上的 deocumentation 几乎不存在。我已经用几个静态函数设置了闪存方面的东西来“实现”as3crypto河豚加密,它们仅适用于在闪存中加密/解密。当我尝试使用密钥在 PHP 中使用 mcrypt 库进行解密时,问题就出现了。我得到的输出不是原始代码,我花了几天时间试图弄清楚为什么无济于事。

下面是代码和解释。出于本示例的目的,使用的密钥是“mykey”(不带引号),编码数据是“Hello World”(同样不带引号)。

Flash 代码(as3crypto 河豚助手):

它的输出因运行而异,但就本示例运行而言,我得到的 base64 编码输出是 'EkKo9htSJUnzBmxc0A=='

当我将该代码带入 PHP 时,它在被传递到下面的方法进行解密之前进行了 base64 解码:

此时输出完全不可读。我怀疑这个问题可能与河豚的 as3crypto 实现不正确(不太可能)或者它可能与它使用的填充(当前为空填充)有关,或者最后我认为它可能有与 as3crypto 中随机生成的初始化向量没有被添加到编码字符串的前面有关吗?最后一个我无法真正测试,因为 as3crypto 库很大、很复杂,而且根本没有太多文档记录。我已经用谷歌搜索了这个问题并测试了几天所有的东西,我只是不断地想出 PHP 中不可用的数据。我知道如果我可以让 Flash 到 PHP 系统正常工作,我可以对其进行逆向工程以使 PHP 到 Flash 加密也运行。

我欢迎所有关于这件事的意见,因为它实际上让我在晚上睡觉,哈哈提前谢谢你:)


我今天做了一些进一步的测试,并试图看看它是否是我怀疑的初始化向量。我不相信这是问题所在。我在 flash 中修改了一些东西,以便获得用于生成编码输出的 IV 的输出:

对于这个例子,我得到了一个 '1bcGpqIbWRc=' 的编码 IV 和 'XpgART3hNQO10vcgLA==' 的编码加密数据,我在 base64_decode() 之后将它们插入到修改后的 PHP 函数中:

即使这个输出也不正确。我已经做了一些测试,以确保 IV 在 Flash 和 PHP 中都是正确的大小,但由于某种原因,PHP 方面无法解密来自 Flash 的河豚编码输出。我尝试在 as3crypto 中同时使用 NULL 和 PKCS5 填充,但它们都不适用于 PHP 的系统。我已经测试以确保 IV 字符串在 Flash 和 PHP 中是相同的。他们都使用相同的密钥。两者都使用CFB模式。我不明白。相同的算法,相同的密钥,相同的 IV,相同的模式,但它们不能相互解密。在我看来,河豚的 as3crypto 实现可能不正确。谁能证实这一点?

0 投票
1 回答
1932 浏览

c++ - 在 C++ 中使用 Openssl 河豚加密算法

我正在编写代码来加密密码并匹配加密密码以检查密码是否弱。我已经使用 ECB 模式 API 编写了加密代码,但它没有按预期工作。在调试我的代码时,我遇到的问题很少。我看到的唯一可以使用的选项是 BF_ecb_encrypt。

1) ecb 模式一次可处理 8 个字节。如果我的密码少于 8 个字符怎么办?是否应该填充随机生成的字符?或与零的?它会这样工作吗?或任何其他可能的方式

2)片段:

代码中是否有任何错误?

提前感谢您的帮助。

0 投票
1 回答
401 浏览

iphone - 使用导入的用于密码加密的河豚 C 库构建 iPhone 项目时出错

我在这里下载了河豚参考源代码,然后当我尝试使用它时,我很好地导入了“blowfish.h”并为“blowfish.lib”设置了目标引用。

当我声明我的密钥时:

它工作得很好,但只要我在“blowfish.h”中调用一个方法定义,比如:

尝试构建项目时出现此错误:

体系结构 i386 的未定义符号:“_BF_set_key”,引用自:-[HPNetworkController authenticateUser:withPassword:] in HPNetworkController.o ld:未找到体系结构 i386 collect2 的符号:ld 返回 1 个退出状态

欢迎任何帮助,谢谢大家;)

0 投票
2 回答
2645 浏览

php - 有没有办法在 PHP 5.2 中使用 bcrypt“散列”?

我正在运行一个带有密码哈希的网站,但我认为当前的算法是不够的。我尝试将 PHP 的 crypt() 与 blowfish 选项一起使用,但我的 PHP 版本只有 5.2,因此未启用 CRYPT_BLOWFISH。

我见过可以通过 Blowfish 加密的 3rd 方库,但没有一个库可以进行完整的 Bcrypt 散列。您知道有没有不使用 crypt() 函数而具有 bcrypt 散列的 PHP 库?或者,更好的是,将第 3 方河豚加密算法输入第 3 方 bcrypt 散列算法的任何方法?

澄清一下,我无法安装更新版本的 PHP,因为我在共享主机上。

我真的很感激任何建议!谢谢!