问题标签 [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.
c - 需要有关 crypt(3) 暴力破解代码的帮助
我正在尝试用 C 语言开发一个程序,该程序将“破解”UNIX 使用的 crypt(3) 加密。我猜最天真的方法是暴力破解。我想我应该创建一个包含密码可以具有的所有符号的数组,然后获取它们的所有可能排列并将它们存储在一个二维数组中(其中所有 1 个字符的密码都保存在第一行等)通过 for循环。有没有更好的方法来做到这一点?循环非常混乱。
encryption - Kohana 的 auth 模块中最安全的算法是什么?
我更喜欢使用 crypt 函数并使用河豚加密,但是这个模块的当前实现使用散列函数,它不提供这种加密方法。那么,Kohana 的 auth 模块中最安全的算法是什么?SHA-512 会是一个不错的选择,还是我最好修改模块以使用 crypt 和 blowfish?
c# - c# 和 php 中的 Ruby 字符串#crypt
我有一个 ruby 客户端程序,它像这样用 string#crypt 加密密码
然后它将它发送到服务器,以与它存储的预加密字符串进行比较。我如何需要能够从 ac# 应用程序和 php 网页发送相同的加密密码,并且仍然能够从任何其他客户端使用相同的密码登录。
C# 和 php 中用于加密的等效代码是什么?
c - 为什么 crypt() 函数没有内存泄漏?
返回值:返回指向加密密码的指针。出错时,NULL
返回。
由于返回值是未知的,除非给出 key 和 salt,这应该是动态分配的内存,但 valgrind 不同意。
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()
使用河豚方法;那么,以下三个字符的意义是什么?那么,如果这三个字符如此重要,那么盐的正确格式是什么?
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:
在评论中,要求我发布一些附加信息,因为用户无法重现我的输出。执行以下代码:
产生以下输出:
希望这可以帮助。
php - (PHP) 如何正确实现 crypt()
这是crypt() 的 PHP 手册页中的示例:
为什么这行得通?我认为这'mypassword'
是我希望实际管理员使用的密码。所以我先将其加密,并将其设置为$password
. 显然,我必须将其存储在数据库中。但在接下来的几行中,它被用作盐和我正在比较的东西,我不明白怎么可能crypt($user_input, $password)
等于到. 如果最后一行是$password
$user_input
$password
$password
我不明白什么?
php - (PHP) 如何将 crypt() 与 CRYPT_BLOWFISH 一起使用?
首先,我看到要使用 CRYPT_BLOWFISH,我需要使用从 $2a$ 开始的 16 字符盐。但是,crypt() 的 php.net 文档说某些系统不支持 CRYPT_BLOWFISH。这种情况多久发生一次?
接下来,从他们在文档上的示例中,我看到我使用 crypt() 如下:
为了使用 CRYPT_BLOWFISH,我唯一需要修改的就是第一行让它变成这样吗?
然后其余的线都很好吗?
c - crypt 函数和链接错误“未定义对 'crypt' 的引用”
我在 c 中使用了 crypt 函数来加密给定的字符串。我写了以下代码,
但是上面的代码抛出了一个错误“undefined reference to 'crypt'”。上面的代码有什么问题。
提前致谢。
python - 使用python在windows上创建兼容的ldap密码(md5crypt)
你知道如何在 Windows 上通过 python 创建一个 ldap 兼容的密码(首选 md5crypt)吗
我曾经在 Linux 中写过类似的东西,但 crypt 模块在 Windows 上不存在