我如何安全地假设 SHA1 哈希的一部分的唯一性?

2024-01-05

我目前正在使用 SHA1 来稍微缩短 url:

Digest::SHA1.hexdigest("salt-" + url)

仅使用 SHA1 的前 8 个字符作为唯一标识符(就像 GitHub 对提交所做的那样)有多安全?


要计算给定长度和哈希数的冲突概率,请参阅生日问题 http://en.wikipedia.org/wiki/Birthday_problem。我不知道您将拥有多少哈希值,但这里有一些示例。 8 个十六进制字符是 32 位,因此对于大约 100 个哈希值,冲突的概率约为 1/1,000,000,对于 10,000 个哈希值,碰撞概率约为 1/100,对于 100,000 个哈希值,碰撞概率约为 3/4,等等。

请参阅表中的生日袭击 http://en.wikipedia.org/wiki/Birthday_attack#The_mathematics维基百科上的文章可以找到满足您需求的良好哈希长度。例如,如果您希望对于超过 100,000 个哈希值的集合,冲突的可能性小于 1/1,000,000,000,则使用 64 位或 16 个十六进制数字。

这完全取决于您将拥有多少个哈希值以及您愿意接受的碰撞概率是多少(因为总是存在一定的概率,即使概率非常小)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何安全地假设 SHA1 哈希的一部分的唯一性? 的相关文章

  • 如何在服务器上保存用户凭据以在后台运行查询

    背景 我们有一个 ASP NET Silveright Web 应用程序 silverlight客户端显示用户 图形形式的特定数据 它从服务器请求数据 问题 由于服务器必须执行底层数据库查询 获取这些数据的成本很高 因此客户端必须等待 优化
  • 允许 iframe 跨域链接到目标父框架

    我有 2 个域 域 1 上的一个页面使用 iframe 加载域 2 中的内容 如何允许来自domain2 iframe 内 的链接在domain1 的完整父框架中打开 我一直在关注IE和w3c的新沙箱属性 http www w3 org T
  • 在java中加密文本文件的最简单方法

    对于我的学校项目 我必须证明我可以在程序中利用文件处理 为此 我做了一个非常简单的登录过程 您可以在其中创建一个帐户 将用户名和密码写入资源文件夹中的文本文件 显然 这根本没有安全性 因为它的设计目的并不是为了展示文件处理的安全性 但是我的
  • 如何使用苹果钥匙串?

    我正在尝试使用scifihifi iphone 来自 Github http github com ldandersen scifihifi iphone tree master security存储和检索用户名和密码 但是 当我添加课程时
  • 内容安全策略:页面设置阻止自行加载资源?

    我有基于 Java 的 Web 应用程序运行在Tomcat http en wikipedia org wiki Apache Tomcat6 我的应用程序在本地主机和端口 9001 上运行 为了使我的应用程序更加安全并降低风险XSS ht
  • 如何防止我的客户经常使用演示 Java 程序?

    我制作了一个演示小程序 想交付给我的客户 以便他可以运行它 5 次以检查其功能 它不是一个大软件 我为其实现了一些序列密钥功能并制作了试用软件 我想要一个简单的解决方案 可以限制程序的使用超过 5 次 或者可以在达到阈值限制后自行删除 我想
  • 合并 2 个 .jks 信任库文件

    我正在使用启用了 SSL 的 Tomcat 并使用信任库进行客户端身份验证 我有两个 jks trustore 文件 第一个 我将其用于 PROD 环境 另一个用于 TEST 环境客户端证书 我在 Tomcat 上部署了 Web 应用程序
  • 会话劫持和 PHP

    让我们只考虑服务器对用户的信任 会话固定 为了避免我使用的固定session regenerate id 仅在身份验证中 login php 会话侧劫持 整个站点的 SSL 加密 我安全吗 阅读 OWASPA3 破坏的身份验证和会话管理 h
  • 有什么方法可以安全地在浏览器中显示视频

    有什么方法可以安全地在浏览器中显示视频 就像他的安全措施之一 视频无法下载 谢谢 我想您的意思是您不希望您的视频被下载或复制 如果是这样 那么阻止人们下载视频或多或少是不可能的 甚至有很多工具可以从 YouTube 等大型提供商那里下载 因
  • 如何检查 AJAX 请求的真实性

    我正在设计一个网站 让用户尽快解决谜题 JavaScript 用于为每个谜题计时 当谜题完成时 毫秒数通过 AJAX 发送到服务器 如何保证服务器收到的时间不是用户伪造的 我不认为基于会话的真实性令牌 Rails 中用于表单的那种 就足够了
  • 如何在 ClearCase (Windows Server) 中限制 VOB 读取访问?

    出于合规性原因 我被要求研究如何限制对 ClearCase 中某些 VOB 的读取访问 因此这需要可审计等 到目前为止我已经找到了一个解决方案 我将在这里发布 但我仍然有疑问 所以任何帮助将不胜感激 我认为 尤其是细节决定成败 为了便于论证
  • CORS 到底如何提高安全性[重复]

    这个问题在这里已经有答案了 我确切地知道 CORS 是如何工作的 我知道它是在浏览器上实现的 并且我知道它禁止向其他来源发送 XMLHTTPRequest 除非远程来源允许它使用响应标头 Access Control Allow Origi
  • Firebase API 密钥限制不适用于 Android 应用程序包名称和 SHA1 指纹

    我们正在使用 Google Firebase 获取我们应用程序的 CrashLytics 数据 以及通过google services json文件被提出作为一个安全问题 因为应用程序 apk 文件可以被逆向工程来获取该文件 然后攻击者可以
  • 最好的通用摘要函数?

    在 2009 年编写一个普通的新应用程序时 就安全性和性能而言 最合理的摘要函数是什么 随着情况的变化 我如何在未来确定这一点 When similar https stackoverflow com questions 116684 wh
  • 如何调用 LogonUser() 来获取启用了 UAC 的 Windows 服务中的非限制完整令牌?

    我正在 Windows Server 2012 上运行 WindowsService 它需要模拟域管理员用户 该用户也被添加到计算机上的本地管理员组 系统上启用了 UAC 并且使用 LogonType 为 LOGON32 LOGON INT
  • 我应该如何合乎道德地处理用户密码存储以便以后进行明文检索?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 随着我继续构建越来越多的网站和 Web 应用程序 我经常被要求以某种方式存储用户的密码 以便在
  • 一个 Guice 就绪的安全框架?

    有没有人见过一个为与 Guice 一起工作而编写的框架 或者一个将现有安全系统 即 Acegi 与 Guice 集成的库 到目前为止我发现了以下内容 http code google com p warp security http cod
  • python:PyPi公共模块:如何确定是否安全?

    我已经完成了我的 python 3 应用程序 它正在使用 PyPi 的多个公共模块 然而 在我将其部署到我公司的企业 将处理客户的凭据并访问第 3 方 API 之前 我需要尽职调查确保它们既安全又安全 我必须执行哪些步骤 验证 PyPi 模
  • 油猴安全性如何?

    我从未真正使用过greasemonkey 但我正在考虑使用它 考虑到 GreaseMonkey 允许您让互联网上的随机人改变您喜爱的网站的行为 它的安全性如何 他们可以窃取我的密码吗 看看我的私人数据 做我不想做的事吗 油猴安全性如何 Th
  • 使用鼠标检测的反验证码

    我想知道是否可以为仅使用 javascript 的表单创建一个安全的人体检测机制 不使用验证码 来检测鼠标移动 因为 jquery 或操作系统代码都可以移动鼠标 我是这么告诉的 这是我的计划 使用 jQuery 我可以检测鼠标是否已移动 然

随机推荐