问题标签 [digest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1715 浏览

jquery - 自定义摘要身份验证

  • 我为摘要身份验证制作了一个 Http 模块。在服务器上,对于页面的每个请求,此模块都会检查是否存在“身份验证”标头。如果此标头不存在,用户将收到 401 消息。
  • 在客户端,我使用 jQuery 插件进行 Digest 身份验证。

要知道我有流动的功能:

  1. 用户在两个输入字段中输入用户名和密码(不是在浏览器 Http Authentication 提示中)
  2. 使用 jQuery,我正在对服务器上的某些受保护页面进行 ajax 调用。此 ajax 调用基于 Digest Http 协议。这意味着我正在添加带有用户名、noncecount、clientnonce、MD5 哈希密码等的身份验证标头。
  3. 然后服务器响应 200 消息:)

如果用户转到另一个页面,它将得到“401 访问被拒绝”,因为该请求中没有身份验证标头。这就是问题所在。

  • 如果我使用标准摘要协议,那么浏览器会自动在每个请求中添加授权标头,我没有这个问题。但我之所以使用这种方式,是因为我没有让用户在浏览器 Http Authentication 对话框中填写他的凭据。我们希望有我们的自定义对话框。在 jQuery DigestJ 插件中,标头称为“authenticate”而不是“authorization”,协议称为 DigestJ 而不是 Digest。这样,当服务器响应 401 消息时,我不会让浏览器 Http Dialog 输入凭据。我们不能使用表单身份验证。
  • 我可以使用 jQuery 会话插件在客户端存储用户凭据,但是如何修改每个请求的 Http 标头?我需要添加“身份验证”标头并从会话中插入凭据。
0 投票
2 回答
5284 浏览

ruby - 摘要的 Base-36 表示

我希望能够获取任意字符串,通过散列函数(如 MD5)运行它,然后以 base-36 解释生成的摘要。

我知道 Ruby 中已经存在一个 Digest 库,但据我所知,我无法获取摘要的原始字节;该to_s函数被映射到hexdigest,当然是base-16。

0 投票
11 回答
78549 浏览

java - 从消息摘要中获取 MD5 字符串

我了解它是如何工作的,但是如果我想将 MD5 打印为字符串,我该怎么做?

0 投票
2 回答
6661 浏览

string - 从文本字符串验证 SHA1 摘要

我在验证文本字符串的 base64 中的 SHA1 摘要时遇到问题。

我在一个文件(test1)中有这个文本字符串:

我使用以下命令对其进行编码(请记住,我编码的是文本字符串而不是文本文件本身):

这导致以下摘要:

现在我想使用公钥验证这个摘要,但是我使用的命令是 openssl how-to 中给出的示例:

但这总是给我“验证失败”。

注意: hash1 文件没有任何 \n 并且 test1 文件包含已编码的字符串。

0 投票
2 回答
865 浏览

security - 通过网络发送的哈希图的完整性

我的 servlet 加密并发送一个 HashMap 及其 MD5 哈希。
客户端然后接收它们,并将 MD5 与它从 HashMap 中计算出的 MD5 进行比较。

这有时有效,但在其他情况下无效,例如,如果 HashMap 是:

这样可行

但是,如果是:

它不起作用 - 两个 MD5 哈希值不同。(唯一的区别是键'count'而不是'coun')

该程序发送类似的 HashMap,所有包含的键/值都只是字符串或整数,这是我第一次看到像这样奇怪的东西。

HashMap/MD5 实际发送方式的详细信息 -

服务器做:

客户这样做:

使用相同类型的 inputStreams 进行解密,以相同的方式计算出 hashmap 的 md5,然后使用以下方法进行比较:

我不明白为什么这对于发送我尝试过的所有 HashMap 都有效,但现在不适用于此计数键。我已经测试了比较客户端和 servlet 上的 HashMap 中的各个键/值对,它们是相同的,但是在比较整个 HashMap 的两个 MD5 时,它们不匹配。

另外,我不确定我是否在流链的正确部分使用缓冲流?

0 投票
3 回答
18473 浏览

sip - SIP 代理认证失败

我正在开发一个连接到 Asterisk 服务器并尝试拨打电话的 SIP 用户代理应用程序。我正在使用 JAIN SIP API 的 NIST 实现。

当应用程序注册自己时,401(未授权)响应会使用 WWW-Authenticate 标头对其进行质询。应用程序将 Authorization 标头插入到下一个 REGISTER 请求中。这次 Asterisk 返回一个 200 (OK) 响应——注册成功。

当应用程序发送 INVITE 请求时,Asterisk 会以 407(需要代理身份验证)响应进行响应。这次响应包含一个 Proxy-Authenticate 标头。我的应用程序再次发送了一个 INVITE,但这次带有 Authorization 标头,Asterisk 使用相同的 407(需要代理身份验证)响应进行响应。

以下是传输的 SIP 消息('>>' 表示传出消息;'<<' 表示传入消息):

>>

<<

<<

>>

<<

<<

>>

>>

<<

>>

>>

<<

在这两种情况下,Authorization 标头的构造方式完全相同(执行相同的代码)。我将请求的请求 URI 用于“digestURI”。我尝试使用 Proxy-Authorization 标头而不是 Authorization 标头,但结果是一样的。

谁能看到我做错了什么?提前致谢。

0 投票
6 回答
22590 浏览

java - HttpClient 4.1.1 在使用 NTLM 进行身份验证时返回 401,浏览器工作正常

我正在尝试使用 Apache/Jakarta HttpClient 4.1.1 使用给定的凭据连接到任意网页。为了测试这一点,我在我的开发机器上安装了一个最小的 IIS 7.5,一次只有一种身份验证模式处于活动状态。基本身份验证工作正常,但每当我尝试登录时,Digest 和 NTLM 都会返回 401 错误消息。这是我的代码:

我在 Fiddler 中注意到的一件事是 Firefox 与 HttpClient 发送的哈希值不同,这让我认为 IIS 7.5 可能期望比 HttpClient 提供的哈希值更强?有任何想法吗?如果我能验证这是否适用于 NTLM,那就太好了。文摘也不错,但如果有必要,我可以不用它。

0 投票
2 回答
814 浏览

php - 通过 PHP 进行 Apache 摘要/基本登录

我试图弄清楚是否有办法让 PHP 为用户登录 Apache。因此,如果用户在 HTML 表单上提供了有效的用户名和密码,PHP 将使用凭据登录。所以,像:

我要做的是在 Apache 上设置某种登录安全性以保护文件,但我想避免弹出 Apache 用来获取凭据的用户名/密码。

我希望他们在 HTML 表单中填写他们的信息,并在他们查看任何文件之前让 PHP 负责身份验证,这样人们就不能只输入“http://example.com/files/private.doc”在 url 中并获取一个文件。

提前致谢!

0 投票
1 回答
1009 浏览

php - 从 Level3 CDN 保护 RT​​MP 流的问题

我目前正在处理从 Level3 CDN 保护 rtmp 流。

文档可以在这里找到: https ://rapidshare.com/files/1450549534/Token_Components.html (看起来您需要登录才能查看,因此我托管在rapidshare上。原始网址是: https:// mediaportal.level3.com/mediaWeb/help/Content/ServicesDocs-Streaming/StreamingTokenAuth/TokenComponents.htm

向下滚动到按需流输入/输出示例(对于 MP4 文件)

我正在尝试重现该示例并获得具有相同值的相同 url。我为此写了一个小函数:

我使用与示例中完全相同的值,但无法获得相同的摘要。

我使用 md5,因为它匹配长度。我还尝试了使用大写和非大写的 secret 。

您可以在此处访问示例脚本:https ://rapidshare.com/files/2581196874/Appendix.html (原文:https ://mediaportal.level3.com/mediaWeb/help/Content/ServicesDocs-Streaming/StreamingTokenAuth/Appendix-示例脚本.htm )

但是绝对没有使用md5,他们使用sha1。但是 sha1 比示例中的摘要长。

当然,我尝试用我的值填充这两个版本,但都没有奏效。

所以我的问题是:任何人都可以重现该示例和/或告诉我摘要或更改我的功能以根据该示例工作吗?

0 投票
1 回答
799 浏览

ruby-on-rails - Rails 应用程序中的电子邮件频率配置策略

我期待允许我的用户配置他们的电子邮件通知频率。

我想为他们提供典型的选择:直接电子邮件、每日和每周摘要

¿ 在 rails 3 应用程序中构建它的最佳策略是什么?

谢谢大家!