2010-03-22 90 views
0

我正在JavaScript中构建一个openid签名生成器,并且我没有经验工作w/octet字符串,但步骤3的signature gen procedure in the openid 2.0 spec指出“转换键/值对列表通过使用键值形式编码进行编码来对八位字符串进行签名“。JavaScript字符串到八位字节的转换

我已经出现的字符串w /(通过crypto-js(code.google.com/p/crypto-js/)lib中的Crypto.charenc.UTF8.stringToBytes)看起来像“111 112 95 101 ...“。这是规格的含义吗?这甚至是一个八位组串?签名仍然不正确,但我至少想知道我的字符串是否正确。

我看过其他字符串,看起来像“123 \ 456 \ 789 ....”(斜杠分隔)和“012 \ 034 \ 123 ...”(斜杠分隔,零填充)。任何帮助表示赞赏。理想情况下,我正在寻找一个JavaScript toOctetString方法的字符串,甚至是一个JavaScript openid lib:O

谢谢!

+0

一个八位字节只是一个意思是“字节”的标准字;因此八位组串只是一个字节序列。 – Will 2010-03-22 18:27:26

+0

Thx,Will。什么是字节串的标准格式?如果我运行Crypto.charenc.UTF8.stringToBytes('foo')。join(''),我会得到'112 111 111'。空格分隔是可接受的格式吗? – erik 2010-03-22 18:43:17

回答

0

关注该短语“通过编码Key-Value Form Encoding”。你只是去的东西,看起来像这样:

color:green 
size:9w 
codename:Sneaky Alligator 

而且总是随意引用existing open-source implementation

+0

也,当你得到一个时间机器,回到2005年,并告诉布拉德使用JSON而不是kvform。 – keturn 2010-03-23 18:54:52

+0

虽然我猜,公平的说,属性kvform有json并不是更明确的空白用法。 – keturn 2010-03-23 19:02:36