问题标签 [token]

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 投票
6 回答
28486 浏览

iphone - Iphone 设备令牌 - NSData 或 NSString

我以NSData对象的形式接收 iPhone 设备令牌。当我测试我的通知脚本功能时,我只从日志中复制了该对象并且通知运行良好。但是,当我现在尝试自动执行此操作时,我将设备令牌作为 ASCII 编码字符串以变量的形式发送

我得到的字符串有一些时髦的字符,看起来类似于这个"å-0¾fZÿ÷ʺÎUQüRáqEªfÔk«"

当服务器端脚本向该令牌发送通知时,我没有收到任何东西。

我需要解码一些东西吗?如何解码?

关注

0 投票
2 回答
2648 浏览

wcf - WCF:传入消息使用与用于加密正文的令牌不同的令牌进行签名。这是没有预料到的

不管出于什么原因,一个关键的第三个 peaty webservice 就是这样运行的。我可以连接、发送请求并接收有效响应,但我仍然收到错误消息。这只发生在一台服务器上。

“传入的消息使用与用于加密正文的令牌不同的令牌进行签名。这是意料之中的。” (原文如此)

这仅发生在一台服务器上,但获取数据至关重要。我无法控制服务器,虽然我知道消息的含义,但坦率地说我不在乎。他们如何配置自己的服务器并发回正确的信息是他们的决定。我想要的只是数据。

WCF 中是否有任何“关闭并处理它”安全设置,以便我可以从服务器正确获取数据?

0 投票
8 回答
431867 浏览

security - 什么是基于令牌的身份验证?

我想了解基于令牌的身份验证意味着什么。我搜索了互联网,但找不到任何可以理解的内容。

0 投票
1 回答
469 浏览

c# - CIL 中的字符串生成器 (MSIL)

我正在尝试生成采用 StringBuilder 的代码,并将类中所有属性的值写入字符串。我有以下内容,但我目前在以下代码中得到“无效的方法令牌”:

有任何想法吗?提前致谢 :)

0 投票
2 回答
66620 浏览

c - 使用 ## 和 __LINE__ 创建 C 宏(与定位宏的标记连接)

我想创建一个 C 宏,它根据行号创建一个名称的函数。我想我可以做类似的事情(真正的函数会在大括号内声明):

我希望将其扩展到以下内容:

那是行不通的。使用令牌连接,定位宏被逐字处理,最终扩展为:

这可能吗?

0 投票
2 回答
1287 浏览

objective-c - APNS 每次都会为单个设备生成新的设备令牌吗?

我想知道苹果的推送通知服务器每次从同一设备请求时都会生成新的设备令牌吗?

0 投票
1 回答
2047 浏览

bash - Bash 循环 - 在行而不是单词上标记化

我正在编写一个脚本来将变量替换到 Java 属性文件中,格式为 name=value。我有一个源文件, source.env 是这样的:

我的脚本会将文件 dest.env 中出现的 TEST_ENV_1 替换为“测试环境变量一”,依此类推。

我正在尝试一次处理一行,并且遇到问题,因为循环从 sed 或 grep 等命令的输出中标记空白而不是整行:

我如何将它们视为线条?我想要做的是在“=”符号上将每一行分开,并根据 source.env 文件使用一堆替换正则表达式制作一个 sed 脚本。

0 投票
1 回答
163 浏览

authentication - 用户未登录时使用表单令牌

我注意到,即使用户没有登录到需要身份验证的服务,许多网站也会发送带有表单帖子的随机令牌。我了解当您拥有经过身份验证的会话时使用令牌,但是在未经身份验证的情况下发送令牌有什么意义?

在用户未登录时创建会话并将令牌与其配对是常见的做法吗?

谢谢,

0 投票
3 回答
243 浏览

html - 电子邮件和可重复使用的令牌 URL

我正在构建一个无需注册即可为用户提供功能的网站。这个想法是向指定的地址发送一封电子邮件,其中包含带有令牌的链接。这样,用户可以随时更改此链接以更改功能。

虽然我意识到没有办法真正保护这样的概念,但我正在寻找最小化令牌可见性的选项。在当前状态下,只要用户单击链接,它就会添加到他们的浏览器历史记录中,任何有权访问计算机的人都可以使用。

在大多数情况下,我会用一个简单的表单来解决这个问题,以便可以通过 POST 请求传递令牌,但电子邮件中并不真正支持表单。

所以问题是,有没有人知道在这样的电子邮件中隐藏令牌的另一种方法?

0 投票
7 回答
4809 浏览

delphi - Delphi 有快速的 GetToken 例程吗?

在我的程序中,我处理了数百万个具有特殊字符的字符串,例如“|” 分隔每个字符串中的标记。我有一个返回第 n 个令牌的函数,就是这样:

我在使用 Delphi 4 时开发了这个函数。它调用了非常高效的 PosEx 例程,该例程最初由 Fastcode 开发,现在包含在 Delphi 的 StrUtils 库中。

我最近升级到 Delphi 2009,我的字符串都是 Unicode。这个 GetTok 函数仍然有效并且仍然有效。

我浏览了 Delphi 2009 中的新库,其中有许多新功能和新增功能。

但是我没有在任何新的 Delphi 库和各种 fastcode 项目中看到像我需要的 GetToken 函数,而且除了Zarko Gajic 的:Delphi Split / Tokenizer Functions之外,我无法通过 Google 搜索找到任何东西,这不是和我已经拥有的一样优化。

在我的程序中,任何改进,即使是 10% 也会很明显。我知道另一种选择是 StringLists 并始终将标记分开,但这在内存方面有很大的开销,我不确定我是否做了所有的工作来转换它是否会更快。

唷。所以在所有这些冗长的谈话之后,我的问题真的是:

您知道 GetToken 例程的任何非常快速的实现吗?汇编程序优化版本是理想的吗?

如果没有,您是否可以看到我上面的代码的任何优化可能会有所改进?


跟进:Barry Kelly 提到了我一年前提出的一个关于优化文件中行的解析的问题。那时我什至没有想到我的 GetTok 例程没有用于读取或解析。直到现在我才看到我的 GetTok 例程的开销导致我提出这个问题。在 Carl Smotricz 和 Barry 给出答案之前,我从未想过将两者联系起来。如此明显,但它只是没有注册。感谢您指出了这一点。

是的,我的 Delim 是单个字符,所以显然我可以做一些重大的优化。我在 GetTok 例程(上图)中使用 Pos 和 PosEx 让我不知道我可以用逐个字符的搜索来更快地做到这一点,代码如下:

我将浏览每个人的答案并尝试各种建议并进行比较。然后我会发布结果。


困惑:好吧,现在我真的很困惑。

我接受了 Carl 和 Barry 的建议来使用 PChars,这是我的实现:

在纸面上,我认为你不能做得比这更好。

所以我把这两个例程都放到了任务中,并使用 AQTime 来查看发生了什么。我的运行包括对 GetTok 的 1,108,514 次调用。

AQTime 将原始程序计时为 0.40 秒。对 Pos 的百万次调用只用了 0.10 秒。半百万的 TokenNum = 1 个副本需要 0.10 秒。600,000 个 PosEx 调用只用了 0.03 秒。

然后我用 AQTime 为我的新例程计时,以进行相同的运行和完全相同的调用。AQTime 报告说我的新“快速”程序耗时 3.65 秒,是 9 倍。根据 AQTime 的罪魁祸首是第一个循环:

执行了 1800 万次的 while 行被报告为 2.66 秒。inc 行执行了 1600 万次,据说需要 0.47 秒。

现在我想我知道这里发生了什么。我在去年提出的一个问题中遇到了与 AQTime 类似的问题:为什么 CharInSet 比 Case 语句快?

再次是 Barry Kelly 向我提供了线索。基本上,像 AQTime 这样的检测分析器不一定能完成微优化的工作。它为每条线路增加了开销,这可能会淹没这些数字中清楚显示的结果。在我的新“优化代码”中执行的 3400 万行超过了我原来的几百万行代码,显然 Pos 和 PosEx 例程的开销很少或没有。

Barry 给了我一个使用 QueryPerformanceCounter 的代码示例来检查他是否正确,在这种情况下他是正确的。

好的,现在让我们用 QueryPerformanceCounter 做同样的事情来证明我的新例程更快,而不是像 AQTime 所说的那样慢 9 倍。所以我来了:

所以这将测试对 GetTok 的 1,000,000 次调用。

我使用 Pos 和 PosEx 调用的旧程序耗时 0.29 秒。带有 PChars 的新版本耗时 2.07 秒。

现在我完全糊涂了!谁能告诉我为什么 PChar 程序不仅慢,而且慢 8 到 9 倍!?


谜团已揭开!Andreas 在他的回答中说将 Delim 参数从字符串更改为 Char。我将永远只使用一个字符,所以至少对于我的实现来说这是很有可能的。我对发生的事情感到惊讶。

100 万次调用的时间从 1.88 秒下降到 0.22 秒。

令人惊讶的是,当我将它的 Delim 参数更改为 Char 时,我原来的 Pos/PosEx 例程的时间从 0.29 秒增加到 0.44 秒。

坦率地说,我对 Delphi 的优化器很失望。Delim 是一个常数参数。优化器应该已经注意到循环中发生了相同的转换,并且应该将其移出以便只执行一次。

仔细检查我的代码生成参数,是的,我确实有优化 True 和字符串格式检查关闭。

底线是 Andrea 修复的新 PChar 例程比我原来的快 25%(0.22 对 0.29)。

我仍然想在这里跟进其他评论并对其进行测试。


关闭优化并打开字符串格式检查只会将时间从 0.22 增加到 0.30。它在原版的基础上增加了大约相同的内容。

使用汇编程序代码或调用用 Pos 或 PosEx 等汇编程序编写的例程的优点是它们不受您设置的代码生成选项的影响。它们将始终以相同的方式运行,一种预先优化且不臃肿的方式。

我在过去几天重申,比较微优化代码的最佳方法是查看和比较 CPU 窗口中的汇编程序代码。如果 Embarcadero 可以使该窗口更方便一点,并允许我们将部分复制到剪贴板或打印它的部分,那就太好了。

此外,我在这篇文章的前面不公平地抨击了 AQTime,认为为我的新例程增加的额外时间仅仅是因为它添加了仪器。现在我返回并检查 Char 参数而不是 String,while 循环下降到 0.30 秒(从 2.66 开始),而 inc 行下降到 0.14 秒(从 0.47 开始)。奇怪的是,inc 线也会下降。但是我已经厌倦了所有这些测试。


我采用了 Carl 的按字符循环的想法,并用这个想法重写了该代码。它做出了另一项改进,从 0.22 秒降至 0.19 秒。所以这是迄今为止最好的:

对此可能还有一些小的优化,比如 CurToken = Tokennum 比较,应该是相同的类型,Integer 或 Byte,以较快者为准。

但是,让我们说,我现在很高兴。

再次感谢 StackOverflow Delphi 社区。