草庐IT

开散列

全部标签

php - 使用密码作为盐的 md5 散列?

md5($password.md5($password))这对密码散列来说足够好了吗?我并不是要将其与bcrypt之类的东西进行比较。如果不安全,请告诉我原因。 最佳答案 为每个用户的密码使用不同盐分的原因是,攻击者无法获取所有哈希密码的列表,并查看其中是否有任何与“密码”或“12345”等简单内容的哈希相匹配.如果您将密码本身用作盐,则攻击者可以计算md5("12345".md5("12345"))并查看它是否与任何条目匹配。据我了解,您可以在密码表上使用四种级别的散列:无-将密码存储为纯文本。如果有人获得了您的数据库的副本,他们

android - 某些设备的 facebook 错误 key 散列无效

错误仅适用于安装了facebook应用程序的设备,否则对于未安装facebook应用程序的设备,它工作正常。它显示的散列键不是我在facebook开发者网站上保存的。我将不胜感激任何帮助。pleasereferimageforscreenshotoferror 最佳答案 如果您从另一台设备(PC)构建apk,Androidkey哈希将发生变化。为此,您将获得另一个key哈希并将其添加到开发者帐户。Facebook允许使用多个key。将此key添加到开发者帐户,一切都会正常工作。 关于an

mysql - 我应该使用什么列类型/长度将 Bcrypt 散列密码存储在数据库中?

我想在数据库中存储一个散列密码(使用BCrypt)。什么是一个好的类型,哪个是正确的长度?使用BCrypt散列的密码是否总是相同的长度?编辑示例哈希:$2a$10$KssILxWNR6k62B7yiX0GAe2Q7wwHlrzhF3LqtVvpyvHZf0MwvNfVu在对一些密码进行哈希处理后,BCrypt似乎总是生成60个字符的哈希值。编辑2抱歉没有提到实现。我正在使用jBCrypt. 最佳答案 bcrypt的模块化crypt格式包括$2$、$2a$或$2y$标识hashingalgorithmandformat表示成本参数的两

mysql - 我应该使用什么列类型/长度将 Bcrypt 散列密码存储在数据库中?

我想在数据库中存储一个散列密码(使用BCrypt)。什么是一个好的类型,哪个是正确的长度?使用BCrypt散列的密码是否总是相同的长度?编辑示例哈希:$2a$10$KssILxWNR6k62B7yiX0GAe2Q7wwHlrzhF3LqtVvpyvHZf0MwvNfVu在对一些密码进行哈希处理后,BCrypt似乎总是生成60个字符的哈希值。编辑2抱歉没有提到实现。我正在使用jBCrypt. 最佳答案 bcrypt的模块化crypt格式包括$2$、$2a$或$2y$标识hashingalgorithmandformat表示成本参数的两

java - 无法在 Java 中输出正确的散列。怎么了?

在我的Android应用程序中,我有一个SHA256散列,我必须使用RIPEMD160消息摘要算法对其进行进一步散列。我可以输出任何字符串的正确sha256和ripemd160散列,但是当我尝试使用ripemd160散列sha256散列时,我得到一个不正确的散列。根据在线哈希计算器,字符串“test”(全部小写)的SHA256值为:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08字符串'test'的RIPEMD160值为:5e52fee47e6b070565f74372468cdc699de89107根据在

c++ - 散列多态类型的正确方法

我有一个使用HowardHinnant'smethod实现的哈希过程(基于hash_append重载的通用哈希)。该方法的目的是创建类的散列,以便“记住”计算结果(请参阅本答案的末尾),所以我遇到了一些问题。特别是,考虑以下可能需要散列的Input类:structA{virtualintdo_stuff()const=0;virtual~A();};structB:A{intdo_stuff()constoverride{return0;}};structC:A{constintu;intdo_stuff()constoverride{returnu;}};structInput{Ac

c++ - 脱离的 std::optional<T> 对象的散列是什么?

Thispage来自cppreference提到std::hash已专门用于std::optional,但没有指定对象脱离时的行为。我可以想到不同的行为:它可以抛出std::bad_optional_access,与std::optional::value一致它可以为每个脱离的std::optional返回相同的哈希值,这样2个分离的对象将具有相同的哈希值。它可以返回std::optional>> 最佳答案 C++14CD在[optional.hash]/3中说:Foranobjectooftypeoptional,ifbool(o

c++ - 一对原始类型的良好散列函数

我正在尝试为两个原始类型的std::pair找出一个好的哈希函数。这是我现在实现它的方式:templatestd::size_toperator()(conststd::pair&rhs)const{returnstdext::hash_value(rhs.first)^stdext::hash_value(rhs.second);}即使我有两对,例如(1,2)和(2,1)(数字翻转),它似乎也能正常工作。它们生成相同的散列值,但这些值仍然成功插入到散列映射中。有什么想法吗? 最佳答案 一般来说,哈希容器总是要处理这种情况(哈希冲突

c++ - 需要一个散列函数来从 ipv6 16 字节地址和 TCP 2 字节端口号中创建 32 位值

我想创建一个32位的哈希值。我有16字节的源和目标ipv6地址以及2字节的源和目标端口号。32位输出=(SrcIP,DstIp,SrcPort,DestPort)如果散列函数能很好地沿着32位空间分布实体,那就更好了。我想将结果用作索引。复习 最佳答案 另一个,可能有用的引用:GeneralPurposeHashFunctionAlgorithmsCityHashbyGoogle请注意,很难制作无碰撞保证的哈希函数(相同哈希码中没有不同的输入结果)。这个问题有很多解决方案,最简单的一种是开放寻址。OpenAddressing

C++:关于字符串序列的散列函数的建议,其中字符串的顺序无关紧要

假设您有这两个字符串序列abccbabcbcabccba我正在尝试为这样的序列(序列也是一个字符串)创建一个映射,以便将上述两个序列映射到同一个桶中。我最初的想法是添加分别应用于每个字符串的散列函数的结果。这样他们的顺序就无关紧要了。如果我将哈希函数作为一个整体应用于序列字符串,那么哈希结果当然会有所不同。但是我对字符串哈希函数的世界还很陌生,我不知道这种方法是否有效。在本网站http://www.partow.net/programming/hashfunctions/index.html我发现了很多不同的字符串散列实现,但是我不确定哪一个是满足我需求的“最佳”。关于序列中每个字符串