问题标签 [crypt]

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 投票
2 回答
3582 浏览

c - 需要有关 crypt(3) 暴力破解代码的帮助

我正在尝试用 C 语言开发一个程序,该程序将“破解”UNIX 使用的 crypt(3) 加密。我猜最天真的方法是暴力破解。我想我应该创建一个包含密码可以具有的所有符号的数组,然后获取它们的所有可能排列并将它们存储在一个二维数组中(其中所有 1 个字符的密码都保存在第一行等)通过 for循环。有没有更好的方法来做到这一点?循环非常混乱。

0 投票
2 回答
1174 浏览

encryption - Kohana 的 auth 模块中最安全的算法是什么?

我更喜欢使用 crypt 函数并使用河豚加密,但是这个模块的当前实现使用散列函数,它不提供这种加密方法。那么,Kohana 的 auth 模块中最安全的算法是什么?SHA-512 会是一个不错的选择,还是我最好修改模块以使用 crypt 和 blowfish?

0 投票
1 回答
1515 浏览

c# - c# 和 php 中的 Ruby 字符串#crypt

我有一个 ruby​​ 客户端程序,它像这样用 string#crypt 加密密码

然后它将它发送到服务器,以与它存储的预加密字符串进行比较。我如何需要能够从 ac# 应用程序和 php 网页发送相同的加密密码,并且仍然能够从任何其他客户端使用相同的密码登录。

C# 和 php 中用于加密的等效代码是什么?

0 投票
2 回答
823 浏览

c - 为什么 crypt() 函数没有内存泄漏?

来自crypt(3) - Linux 手册页

返回值:返回指向加密密码的指针。出错时,NULL返回。

由于返回值是未知的,除非给出 key 和 salt,这应该是动态分配的内存,但 valgrind 不同意。

0 投票
1 回答
8894 浏览

php - 使用 PHP 的 crypt 的河豚盐的正确格式是什么?

我已经阅读了PHP Manual Entry forcrypt()中提供的信息,但我发现自己仍然不确定触发 Blowfish 算法的盐的格式。

根据手动输入,我应该使用 '$2$' 或 '$2a$' 作为 16 个字符的字符串的开头。但是,在后面给出的示例中,他们使用了更长的字符串:' $2a$07$usesomesillystringforsalt$',这向我表明,我提供的任何字符串都将被切片和切块以适合模型。

我遇到的问题实际上是触发 Blowfish 算法与STD_DES. 例子:

该哈希显然不是漩涡,实际上STD_DES只有盐的前两个字符用于盐。但是,在 PHP 手册的示例中,它们的 salt 以 ' $2a$07$' 开头,所以如果我将这三个字符添加到相同的代码中,我会得到以下信息:

我注意到我可以在此处显示为 ' 07$' 的字符中提供一些差异,例如04$15$两者都可以工作,但01$通过03$不工作(生成一个空白字符串),以及诸如和之类的值99$导致85$STD_DES再次恢复.

问题:

' ' 字符串后面的这三个字符的意义是什么$2a$,正如我被手册所引导的那样,指示 crypt 函数使用河豚方法。

根据手册,' $2a$'应该足以指导crypt()使用河豚方法;那么,以下三个字符的意义是什么?那么,如果这三个字符如此重要,那么盐的正确格式是什么?

0 投票
4 回答
14199 浏览

php - 为什么 crypt/blowfish 使用两种不同的盐生成相同的哈希?

这个问题与 PHP 的crypt(). 对于这个问题,不计算盐的前 7 个字符,因此盐 ' $2a$07$a' 的长度为 1,因为它只有盐的 1 个字符和元数据的七个字符。

当使用长度超过 22 个字符的 salt 字符串时,生成的哈希值没有变化(即截断),而当使用少于 21 个字符的字符串时,salt 将自动被填充($显然是用 ' ' 字符);这相当简单。但是,如果给定一个盐 20 个字符和一个盐 21 个字符,其中除了 21 长度盐的最后一个字符之外,两者相同,则两个散列字符串将相同。一个长度为 22 个字符的盐,除了最后一个字符外,它与 21 个长度的盐相同,哈希将再次不同。

代码示例:

将产生:

为什么是这样?

编辑:

一些用户注意到整个字符串存在差异,这是真的。在salt_20, 偏移量 (28, 4) 是da$., 而在salt_21, 偏移量 (28, 4) 是da2.; 但是,重要的是要注意生成的字符串包括哈希、盐以及生成盐的指令(即$2a$07$);实际上,发生差异的部分仍然是盐。实际的哈希值不变UxGYN739wLkV5PGoR1XA4EvNVPjwylG

因此,这实际上不是产生的哈希的差异,而是用于存储哈希的盐的差异,这正是当前的问题:两个盐生成相同的哈希。

Rembmer:输出将采用以下格式:

其中 ## 是 log-base-2 确定算法运行的迭代次数

编辑2:

在评论中,要求我发布一些附加信息,因为用户无法重现我的输出。执行以下代码:

产生以下输出:

希望这可以帮助。

0 投票
1 回答
2390 浏览

php - (PHP) 如何正确实现 crypt()

这是crypt() 的 PHP 手册页中的示例:

为什么这行得通?我认为这'mypassword'是我希望实际管理员使用的密码。所以我先将其加密,并将其设置为$password. 显然,我必须将其存储在数据库中。但在接下来的几行中,它被用作盐和我正在比较的东西,我不明白怎么可能crypt($user_input, $password)等于到. 如果最后一行是$password$user_input$password$password

我不明白什么?

0 投票
1 回答
11409 浏览

php - (PHP) 如何将 crypt() 与 CRYPT_BLOWFISH 一起使用?

首先,我看到要使用 CRYPT_BLOWFISH,我需要使用从 $2a$ 开始的 16 字符盐。但是,crypt() 的 php.net 文档说某些系统不支持 CRYPT_BLOWFISH。这种情况多久发生一次?

接下来,从他们在文档上的示例中,我看到我使用 crypt() 如下:

为了使用 CRYPT_BLOWFISH,我唯一需要修改的就是第一行让它变成这样吗?

然后其余的线都很好吗?

0 投票
6 回答
16059 浏览

c - crypt 函数和链接错误“未定义对 'crypt' 的引用”

我在 c 中使用了 crypt 函数来加密给定的字符串。我写了以下代码,

但是上面的代码抛出了一个错误“undefined reference to 'crypt'”。上面的代码有什么问题。

提前致谢。

0 投票
4 回答
7023 浏览

python - 使用python在windows上创建兼容的ldap密码(md5crypt)

你知道如何在 Windows 上通过 python 创建一个 ldap 兼容的密码(首选 md5crypt)吗

我曾经在 Linux 中写过类似的东西,但 crypt 模块在 Windows 上不存在