有没有办法扭转在C的crypt()? [英] Is there a way to reverse a crypt() in c?

查看:147
本文介绍了有没有办法扭转在C的crypt()?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

不知道这是可能的,但我希望能够用字符串开始,然后找出输入必须是怎样进入地穴为了得到这串出。

Not sure if this is possible but I want to be able to start with a string, and then figure out what the input must be into the crypt in order to get this string out.

或者,也许这是不可能的,这将是事物的全部目的,反正?

Or maybe it's impossible, which would be the whole purpose of the thing anyways?

是的,有在code,其中我想这个盐。

Yes, there is a salt in the code where I am trying this.

推荐答案

根据设计意图,的crypt()是一个单向散列。正如每个人所说的,这意味着其意图是,这将是计算上不可行地发现,产生相同的散列明文字符串。

By design intent, crypt() is a one-way hash. As everyone has said, that means that the intent is that it would be computationally infeasible to discover a plaintext string that produces the same hash.

一对夫妇的因素对设计意图的效果。

A couple of factors have an effect on that design intent.


  1. 计算是一个的很多的价格比它是当的crypt()的设计。更糟的是,在该计算得了便宜的速度并没有预期的,所以它是便宜很多现在比以往任何时候都想象它可以。

  1. Computation is a lot cheaper than it was when crypt() was designed. Worse, the rate at which computation got cheaper was not anticipated, so it is a lot cheaper now than it was ever imagined it could be.

DES并没有耽误,以及人们认为它会。这可能是在当时特定知识的公共状态的最佳选择,但是。

DES hasn't held up as well as it was thought it would. It was probably the best choice given the public state of knowledge at the time, however.

即使计算还没有便宜到足以做自己的开裂,这是互联网已经做了很多关于你的工作的云。人们一直在计算和发布彩虹表这使得它能够快捷了很多,扭转特定需要的计算哈希值。 (杰夫对彩虹表一个博客帖子太。)盐有助于防止彩虹表(因为你需要该盐的每个可能值设定一个表),但盐在经典实施使用的大小隐窝()只有12位,以便不作为一个庞大的块可能希望。

Even if computation isn't yet cheap enough to do your own cracking, the cloud that is the internet has already done a lot of the work for you. People have been computing and publishing Rainbow Tables which make it possible to shortcut a lot of the computation required to reverse a particular hash. (Jeff had a blog post on rainbow tables too.) Salt helps protect against rainbow tables (because you would need a table set for each possible value of the salt), but the size of the salt used in the classic implementation of crypt() is only 12 bits so that isn't as huge a block as might be hoped.

更糟糕的是,对于某些高价值的散列函数(如 LM哈希的发明了旧Microsoft LAN管理器密码,但在Vista之前所有版本的Windows用于短密码)哈希几乎完全字典和它们的逆存在。

Worse yet, for certain high-valued hash functions (like the LM hash invented for old Microsoft Lan Manager passwords but used for short password in all versions of Windows before Vista) nearly complete dictionaries of hashes and their inverses exist.

这篇关于有没有办法扭转在C的crypt()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆