草庐IT

开散列

全部标签

c# - MD5 散列在 C# 和 PHP 中不匹配

我曾尝试在PHP中使用MD5对字符串进行哈希处理,在C#中也是如此,但结果不同..谁能解释一下如何匹配?我的C#代码看起来像md5=newMD5CryptoServiceProvider();originalBytes=ASCIIEncoding.Default.GetBytes(AuthCode);encodedBytes=md5.ComputeHash(originalBytes);Guidr=newGuid(encodedBytes);stringhashString=r.ToString("N");提前致谢已编辑:我的字符串是123作为字符串输出;PHP:202cb962ac5

php - 散列 session 指纹真的有必要吗?

请在投票前仔细阅读此内容...所以我看到了很多session管理类,它们通过连接用户代理和几个ipblock或其他什么来创建指纹。他们似乎还添加了盐,然后在将指纹存储在session变量中之前对其进行哈希处理。此指纹生成通常发生在每个请求中,以验证session的当前用户确实是原始session用户。这就是为什么我想知道,salt和hash在这样的事情上真的有必要吗?如果黑客可以进入您的文件系统以查看您的session文件内容,那么您当时是不是已经被淹没了?非常感谢任何信息。 最佳答案 其中大部分是有道理的,但散列和加盐毫无意义。如

php - 使用随机盐改进密码散列

我正在创建一个网站,我正在尝试决定如何加密用户密码以将其存储在SQL数据库中。我意识到使用简单的md5(密码)是非常不安全的。我正在考虑使用sha512(password.salt),并且我一直在研究生成有用盐的最佳方法。我阅读了许多文章,指出盐应该尽可能随机以将熵添加到哈希中,这看起来是个好主意。但是:您需要将随机盐与哈希一起存储鉴于攻击者以某种方式访问​​了您的哈希密码(并试图将哈希反转为纯文本),这意味着他可能转储了您的数据库,然后也访问了您的随机盐数据库中哈希值旁边看起来很奇怪的值是盐,这不是很明显吗?如果攻击者可以访问盐以及哈希值,那如何更安全?有人在这方面有专长吗?谢谢!

android - Keytool 生成 32 个字符长的 key 散列而不是 28 个

我正在使用以下命令为Android的Facebook应用程序控制台生成key哈希.\keytool.exe-exportcert-aliasapp_android-keystorerelease.keystore|opensslsha1-binary|opensslbase64如FacebookdevelopersSDKhelp所述根据帮助页面和开发人员控制台,key哈希应该是28个字符长,但是keytool正在生成32个字符长的key。Java版本:jdk1.8.0_31操作系统:Windows7为安卓生成。编辑根据@Shreyash-mashru的建议,我使用以下代码获取keyha

c++ - 快速跨平台 C/C++ 散列库

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭5年前。Improvethisquestion什么是高性能哈希库,它也是C/C++的跨平台。适用于MD5、SHA1、CRC32和Adler32等算法。我最初的印象是Boost有这些,但显然(还没有)。到目前为止我发现的最有前途的是Crypto++,还有其他建议吗?http://www.cryptopp.com/这似乎很全面。 最佳答案 对于通常的加

c++ - 散列一个无序的小整数序列

背景我有大量(约数千个)整数序列。每个序列都有以下属性:长度为12;序列元素的顺序无关紧要;没有元素在同一序列中出现两次;所有元素都小于大约300。请注意,属性2.和3.暗示序列实际上是sets,但它们存储为C数组以最大限度地提高访问速度。我正在寻找一种好的C++算法来检查集合中是否已经存在新序列。如果不是,则将新序列添加到集合中。我考虑过使用哈希表(但请注意,我不能使用任何C++11构造或外部库,例如Boost)。散列序列并将值存储在std::set中也是一种选择,因为如果冲突足够少,则可以忽略它们。也欢迎任何其他建议。问题我需要一个commutative散列函数,即一个不依赖于序列

c++ - 散列浮点值

最近,我很好奇浮点哈希算法是如何工作的,所以我查看了boost::hash_value的源代码。原来是fairlycomplicated.实际的实现循环遍历基数中的每个数字并累积一个哈希值。与整数散列函数相比,它涉及更多。我的问题是:为什么浮点哈希算法应该更复杂?为什么不直接对浮点值的二进制表示进行散列,就好像它是一个整数一样?喜欢:std::size_thash_value(floatf){returnhash_value(*(reinterpret_cast(&f)));}我意识到float不能保证在所有系统上都与int大小相同,但是可以使用一些模板元程序来处理这种事情推导出与fl

c++ - std::hash 可以用来散列函数指针吗?

C++11std::hash类型可以用来散列函数指针吗?有一个hash部分特化定义为templatestructhash;但由于函数指针与C++中的其他指针类型不同(例如,它们不能强制转换为void*),我不确定将它用于以下类型是否安全int(*)()或void(*)(int,int).这是允许的吗?新的ISO规范中是否有任何具体的措辞支持或反驳这一点?谢谢! 最佳答案 很好的问题。我不确定答案,我很乐意听从比我知识更好的人,但我的想法是,即使函数指针与数据指针不同,它们仍然是指针:所以std::hash应该应用部分特化。对于它的值

c++ - 一个好的 vector 散列函数

我有一些整数vector,我想在c++11的unordered_map中有效地存储我的问题是:我如何最好地存储这些并针对.find查询进行优化?我想出了以下哈希:classuint32_vector_hasher{public:std::size_toperator()(std::vectorconst&vec)const{std::size_tret=0;for(auto&i:vec){ret^=std::hash()(i);}returnret;}};然后将对象存储在unordered_map但是我确实有几个问题哈希的计算频率是多少,只有一个,一些随机数或次数?用==和散列函数创建

c++ - 如何在删除元素时防止重新散列 std::unordered_map?

我有一个std::unordered_map,我将从迭代中删除元素。autoitr=myMap.begin();while(itr!=myMap.end()){if(/*removalcondition*/){itr=myMap.erase(itr);}else{++itr;}}我想阻止map执行任何昂贵的操作,直到我完成删除所有需要删除的元素。我有正当的担忧吗?我是否误解了内部存储的工作原理? 最佳答案 在erase期间禁止无序容器重新散列:[unord.req]/p14:Theerasemembersshallinvalidat