- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我昨天问了一个关于安全散列的问题,这让我开始思考如何破解使用自定义散列算法创建的密码。我当前的(非常不安全的)密码脚本在密码上使用 sha1 的迭代,然后对由 3 位盐预先生成的哈希进行迭代。
$hash = sha1($pass1);
//creates a 3 character sequence
function createSalt()
{
$string = md5(uniqid(rand(), true));
return substr($string, 0, 3);
}
$salt = createSalt();
$hash = sha1($salt . $hash);
$hash = sha1( 'password' );
$salt = '3Sf';
$hash = sha1( $salt.$hash);
$hash = sha1( 'password' );
$salt = '3Sf';
for($i; $i<1000; $i++){
$hash = sha1( $salt.$hash);
}
最佳答案
据我所知,没有广泛可用的哈希破解工具支持此功能。
但是,正如您所说,如果有足够的时间,编写一个程序来破解散列将非常简单。
如果你的攻击者已经知道你计算加盐哈希的方法,我们可以安全地假设他可以访问你的数据库(它也必须存储盐),它的转储或访问你的应用程序和客户端之间的纯文本通信.
然后破解哈希,他会简单地复制你的 sha1($salt . $hash) 函数并开始向它输入通用密码。与纯暴力强制所有可能的组合相比,这将节省时间。他会从您的数据库中获取 $salt 并将哈希加盐哈希密码的结果与存储在同一数据库中的加盐哈希进行比较。
如果生成的哈希值匹配,则密码已被“破解”。
一般来说,为每个用户使用单独的盐是一个好主意,因为它会以指数方式增加破解整个数据库密码表的时间。与其使用单个盐对单个散列函数运行词表,他必须针对数据库中的每个散列 PW 运行整个词表。
也就是说,如果攻击者深入到您的系统中以实际获取哈希/盐,那么他将更容易更改您的代码以向他发送最初登录的用户凭据的纯文本副本。
关于passwords - 如何暴力破解多次散列的密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6344849/
GCC 可见性功能使我们能够去除共享库中我们不希望客户看到的那些 API。事实上我们不能使用 ldopen 来调用那些隐藏函数,但我想知道这是否足够安全以保护我们敏感的 API。 我只想得到一些关于共
这个问题在这里已经有了答案: C# Structs "this = ...." (2 个答案) Assignment of a struct value to this keyword (2 个答案
下面一段代码给大家介绍python破解geetest 验证码功能,具体代码如下所示: ?
默认的 WordPress 类别小部件不允许排除命名类别。 我创建了一个插件,该插件将自定义类别小部件添加到“可用小部件”列表中,这使我可以对要排除的项目进行一些控制。代码如下... 但是,我希望生
有一些语言支持足够强大的类型系统,它们可以在编译时证明代码不会在其边界之外寻址数组。我的问题是,如果我们要将这样的语言编译到 JVM,是否有某种方法可以利用它来提高性能并删除每次访问数组时发生的数组边
此时,毫无疑问,由于浏览器限制,在 TinyMCE 中右键单击粘贴是不可能的(除非用户专门启用它)。 但是,是否有任何解决方法,例如使用 JavaScript 捕获粘贴事件,将剪贴板内容粘贴到某个隐藏
我是 Angular JS 新手,找不到此问题的解决方案。我必须使用用 Angular 1.4 编写的在线 Web 表单(我无法控制),并且我想注入(inject)一些 JavaScript 来更改字
我正在考虑一种以 Oracle 不希望的方式使用物化 View 日志的解决方案。这个想法是为 Oracle 源和非 Oracle 目标实现快速刷新 MV 功能。我已经测试了这种方法以确认它有效,但我担
我需要更改几个 FIT 图像标题中的一些值以适合我拥有的一些测试数据。因此,我正在尝试立即破解 FIT 图像标题以与应用程序一起运行。 然而此刻 - 我什至看不到标题,别介意破解它。我运行 Ubunt
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我已经完成了我的网站制作,但后来我在 IE8 中加载了它。大问题!例如,我的一堆 div 和 span 元素似乎是透明的(它们应该有彩色背景),并且 float 元素不起作用。 当我开发我的网站时,我
纯粹的好奇心,不用于生产,因为显然它可能会导致重大问题。 对于 C++,当您分配新内存 (var *ch = new char[x]) 时,大小基本上存储在 ch[-1] 中,根据C++ 规范。 问题
能否请您提出解决 IE8 背景大小问题的最佳方法? 最佳答案 您可以引用background-size的“跨浏览器”解决方案。 据我所知,按照THIS TUTORIAL link即可实现,因为您没有代
我试图理解 gc,因为我在一个程序中有一个很大的列表,我需要删除它以释放一些急需的内存。我想回答的基本问题是我如何找到 gc 正在跟踪的内容以及已释放的内容?以下是说明我的问题的代码 import g
我们在 iOS 应用商店上有一个成功的应用程序内购买应用程序。每次购买完成时,我们都会将收据发送到我们的服务器,然后我们的服务器会使用 Apple 的服务器检查收据并记录苹果的响应(包括购买是否有效以
我正在尝试了解 Node 的内部工作原理,但我无法拼凑出用 js 编写的 Node 如何 Hook /绑定(bind)到用 C/C++ 编写的低级系统调用。 当我写这段代码时—— var http =
我的应用程序中有这个线程监视一组客户端套接字。我使用 select() 进行阻塞,直到客户端发出请求,这样我就可以在不增加线程的情况下高效地处理它。 现在,问题是,当我将新客户端添加到客户端列表时,我
我只做个简单的小例子,给大家一个思路,吼吼~~~~ 1使用工具 Reflector.exe 用来查看.net代码 这个就不用多说了它是学.net必备神器 Ildasm.exe:用来将dll,e
我正在创建一个基于 NSDocument 的应用程序,其中包含文档选项卡。我发现它并不是为此而设计的。 Apple 设计的架构允许单个文档使用多个窗口,但反之则不然。我基本上可以正常工作,但我开始遇到
我有这段 C 代码,我想知道是否可能如何绕过此检查? int fd, password, input; fd = open("/dev/urandom", 0); read(fd, &password
我是一名优秀的程序员,十分优秀!