草庐IT

开散列

全部标签

c++ - 无序多集的散列/crc 算法

假设我想创建一组无序的unsignedint无序多重集。为此,我需要创建一个哈希函数来计算无序多重集的哈希值。事实上,它也必须对CRC有好处。一个明显的解决方案是将项目放入vector中,对它们进行排序并返回结果的哈希值。这似乎可行,但它很昂贵。另一种方法是对值进行异或运算,但很明显,如果我有一个项目两次或没有,结果将是相同的——这并不好。关于如何以更便宜的方式实现这一点的任何想法-我有一个应用程序可以为数千套和相对较大的套做这千套。 最佳答案 由于它是一个多重集,您希望相同多重集的哈希值相同,其表示可能具有以不同顺序呈现、添加或删

c++ - 如何在 C++ 中实现与嵌套 Perl 散列等效的功能?

我想将一些Perl代码更改为C++。我需要知道如何在C++中实现嵌套的Perl哈希。我认为STL是一个不错的选择,并使用了map。在map的帮助下,我只能创建一个简单的散列,但我不知道如何创建嵌套的散列结构。我的Perl哈希是这样的:%foo=("bar1"=>{Default=>0,Value=>0},"bar2"=>{Default=>2,value=>5,other=>4})我可以这样修改它:$foo{"bar1"}->{"Default"}=15。我如何使用STL在C++中执行此操作?也许这是一个简单的问题,但我无法弄清楚。 最佳答案

java - 用于散列的 Hadoop Map Reduce 程序

我在Hadoop中编写了一个MapReduce程序,用于对文件的所有记录进行哈希处理,并将哈希值作为附加属性附加到每条记录,然后输出到Hadoop文件系统这是我写的代码publicclassHashByMapReduce{publicstaticclassLineMapperextendsMapper{privateTextword=newText();publicvoidmap(Textkey,Textvalue,Contextcontext)throwsIOException,InterruptedException{key.set("single")Stringline=valu

java - 与 Java 和 PHP 兼容的密码散列

是否有我可以在PHP和Java中轻松使用的安全密码哈希库(例如phpass)或哈希方法? 最佳答案 如果你想做简单的事情,你可以使用sha-N和salt。(N为1、256或512)JeffAtwood最近就此发表了一篇不错的博文,称bcrypt和PBKDF2是最佳选择。在PHP中你可以usebcrypt(并在Javatoo)相关主题:HowdoyouusebcryptforhashingpasswordsinPHP?资源:CodingHorror-SpeedHashingSecurityStackexchange-Doanysecu

php - 密码在编辑时散列两次 - CakePHP

我有一个用户编辑View。当人们访问这个View时,它在密码block中有散列密码。如果您点击保存,它(显然)会再次散列密码,因为这是在我的用户模型中。publicfunctionbeforeSave($options=array()){if(!empty($this->data['User']['password'])){$this->data['User']['password']=AuthComponent::password($this->data['User']['password']);}returntrue;}但我不想对其进行两次哈希处理(因为这意味着密码已更改)。我更改

php - 使用基于时间的旋转散列或字符串来确保安全

在CMS应用程序中,我偶尔需要打开另一个域的iframe。目前,我将该iframe的URL设置为非常模糊的内容。像http://domain.com/iframe/jhghjg34787386/。这可行,但理论上iframe源url将保存在用户的历史记录中,并且可以从外部世界访问。因此,我想知道如何使用基于时间的方法来处理在请求端处理并在iframe源端检查的不断变化的哈希或字符串。但是我希望它是基于时间的。我可以这样做来获取我的哈希值:但是这两个服务器必须完全同步。有什么方法可以使时间限制更加模糊?我也对其他方法持开放态度。有什么方法可以验证iframe的父窗口是否属于某个域?

php - 每次登录更新散列盐是个好主意吗?

我想做一个安全的网站。每次用户登录时更新密码salt是个好主意吗?编辑:我还使用了硬编码的全局盐。 最佳答案 不,这根本没有意义。加盐哈希的目的是使它们唯一,即使原始密码相同。这避免了例如彩虹表攻击或在哈希足以登录的另一个网站上重新使用被盗的哈希(发生在错误的记住我实现中)。假设攻击者从您的数据库中获取了存储的密码哈希值。这通常意味着他知道盐和最终哈希值。现在他已经可以暴力破解这个单一密码了。假设没有冲突,当暴力攻击成功时,他最终会得到用户的实际密码。并且无论此时使用什么盐,它都会起作用。有关加盐的更多信息,我建议您阅读thisex

php - 为什么像 sha1 这样的散列函数最多只使用 16 个不同的字符(十六进制)?

抱歉我有这种好奇心。sha1使用[a-f0-9]字符作为它的散列函数。我可以知道为什么它不使用所有可能的字符[a-z0-9]通过使用所有可用的字符它可以大大增加可能的不同哈希的数量,从而降低可能发生冲突的可能性.如果您认为这不是一个真正的问题,请发表评论,我会立即删除此问题。===如答案中所述,sha1NOT仅使用16个字符。正确的事实是:sha1是160位的二进制数据(引文)。我添加这个是为了防止混淆。 最佳答案 您将表示与内容混淆了。sha1是160位的二进制数据。您可以用以下方式轻松地表示它:hex:0xf1d2d2f924e

php - 使用 sha1 密码散列法恢复密码

我想为我的网站实现忘记密码功能。我使用sha1散列密码。我将如何为用户恢复它?实现它的最佳方法是什么? 最佳答案 简短的回答,你不能。您想实现密码重置功能,而不是密码检索功能。散列密码的全部意义在于您无法存储用户的密码,如果丢失也无法恢复。This应该让您大致了解如何允许用户重置忘记的密码: 关于php-使用sha1密码散列法恢复密码,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions

php - 在 CakePHP 中使用更安全的散列算法

默认情况下,CakePHP似乎使用SHA1算法来散列密码并且似乎只提供SHA256作为替代:http://api.cakephp.org/view_source/security#line-86我想在公开我的应用程序之前切换到更安全的密码哈希解决方案,以免将来切换到更安全的哈希算法时出现麻烦。我四处寻找有关使用bcrypt或类似内容的一些指南,但它们似乎都适用于旧版本的Cake,或者散列算法实现不佳。有没有指南可以告诉我如何在不更改模型或Controller中的任何代码的情况下集成更好的密码散列?另外,还有一个小问题,为什么Cake开发者在他们的版本中只包含SHA密码散列?众所周知,S