2010-03-22 89 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