问题标签 [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.
jquery - 自定义摘要身份验证
- 我为摘要身份验证制作了一个 Http 模块。在服务器上,对于页面的每个请求,此模块都会检查是否存在“身份验证”标头。如果此标头不存在,用户将收到 401 消息。
- 在客户端,我使用 jQuery 插件进行 Digest 身份验证。
要知道我有流动的功能:
- 用户在两个输入字段中输入用户名和密码(不是在浏览器 Http Authentication 提示中)
- 使用 jQuery,我正在对服务器上的某些受保护页面进行 ajax 调用。此 ajax 调用基于 Digest Http 协议。这意味着我正在添加带有用户名、noncecount、clientnonce、MD5 哈希密码等的身份验证标头。
- 然后服务器响应 200 消息:)
如果用户转到另一个页面,它将得到“401 访问被拒绝”,因为该请求中没有身份验证标头。这就是问题所在。
- 如果我使用标准摘要协议,那么浏览器会自动在每个请求中添加授权标头,我没有这个问题。但我之所以使用这种方式,是因为我没有让用户在浏览器 Http Authentication 对话框中填写他的凭据。我们希望有我们的自定义对话框。在 jQuery DigestJ 插件中,标头称为“authenticate”而不是“authorization”,协议称为 DigestJ 而不是 Digest。这样,当服务器响应 401 消息时,我不会让浏览器 Http Dialog 输入凭据。我们不能使用表单身份验证。
- 我可以使用 jQuery 会话插件在客户端存储用户凭据,但是如何修改每个请求的 Http 标头?我需要添加“身份验证”标头并从会话中插入凭据。
ruby - 摘要的 Base-36 表示
我希望能够获取任意字符串,通过散列函数(如 MD5)运行它,然后以 base-36 解释生成的摘要。
我知道 Ruby 中已经存在一个 Digest 库,但据我所知,我无法获取摘要的原始字节;该to_s
函数被映射到hexdigest
,当然是base-16。
java - 从消息摘要中获取 MD5 字符串
我了解它是如何工作的,但是如果我想将 MD5 打印为字符串,我该怎么做?
string - 从文本字符串验证 SHA1 摘要
我在验证文本字符串的 base64 中的 SHA1 摘要时遇到问题。
我在一个文件(test1)中有这个文本字符串:
我使用以下命令对其进行编码(请记住,我编码的是文本字符串而不是文本文件本身):
这导致以下摘要:
现在我想使用公钥验证这个摘要,但是我使用的命令是 openssl how-to 中给出的示例:
但这总是给我“验证失败”。
注意: hash1 文件没有任何 \n 并且 test1 文件包含已编码的字符串。
security - 通过网络发送的哈希图的完整性
我的 servlet 加密并发送一个 HashMap 及其 MD5 哈希。
客户端然后接收它们,并将 MD5 与它从 HashMap 中计算出的 MD5 进行比较。
这有时有效,但在其他情况下无效,例如,如果 HashMap 是:
这样可行
但是,如果是:
它不起作用 - 两个 MD5 哈希值不同。(唯一的区别是键'count'而不是'coun')
该程序发送类似的 HashMap,所有包含的键/值都只是字符串或整数,这是我第一次看到像这样奇怪的东西。
HashMap/MD5 实际发送方式的详细信息 -
服务器做:
客户这样做:
使用相同类型的 inputStreams 进行解密,以相同的方式计算出 hashmap 的 md5,然后使用以下方法进行比较:
我不明白为什么这对于发送我尝试过的所有 HashMap 都有效,但现在不适用于此计数键。我已经测试了比较客户端和 servlet 上的 HashMap 中的各个键/值对,它们是相同的,但是在比较整个 HashMap 的两个 MD5 时,它们不匹配。
另外,我不确定我是否在流链的正确部分使用缓冲流?
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 标头,但结果是一样的。
谁能看到我做错了什么?提前致谢。
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,那就太好了。文摘也不错,但如果有必要,我可以不用它。
php - 通过 PHP 进行 Apache 摘要/基本登录
我试图弄清楚是否有办法让 PHP 为用户登录 Apache。因此,如果用户在 HTML 表单上提供了有效的用户名和密码,PHP 将使用凭据登录。所以,像:
我要做的是在 Apache 上设置某种登录安全性以保护文件,但我想避免弹出 Apache 用来获取凭据的用户名/密码。
我希望他们在 HTML 表单中填写他们的信息,并在他们查看任何文件之前让 PHP 负责身份验证,这样人们就不能只输入“http://example.com/files/private.doc”在 url 中并获取一个文件。
提前致谢!
php - 从 Level3 CDN 保护 RTMP 流的问题
我目前正在处理从 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 比示例中的摘要长。
当然,我尝试用我的值填充这两个版本,但都没有奏效。
所以我的问题是:任何人都可以重现该示例和/或告诉我摘要或更改我的功能以根据该示例工作吗?
ruby-on-rails - Rails 应用程序中的电子邮件频率配置策略
我期待允许我的用户配置他们的电子邮件通知频率。
我想为他们提供典型的选择:直接电子邮件、每日和每周摘要
¿ 在 rails 3 应用程序中构建它的最佳策略是什么?
谢谢大家!