2012-06-06 69 views
0

爲什麼C#的tobase64string將「a46fb104c5ea2fd65df3909f4c6ba4191c2eb4e5」轉換爲56個字符的字符串,而以下站點:http://tomeko.net/online_tools/hex_to_base64.php?lang=en產生了我試圖實現的base64編碼的字符串?這讓我瘋狂!哈哈。base64'ing a sha1

+1

向我們展示您的C#代碼。您的評論至少有兩個提高眉毛的短語。 – AakashM

+0

我會在下班後,但基本上,我正在關注維基百科上的websocket文章,並且當我按預期得到所有其他結果(包括解析請求鍵並在末尾附加「幻數」)時,SHA1值(一旦破折號)產生a46fb ....編號。然後,我將該值傳遞給Convert.ToBase64String(Encoding.ASCII.GetBytes(key)),該值產生56個字符值,而不像維基百科文章那樣具有28位。 – Xealgo

+0

我有一種感覺,字節值是關閉的...不能相信我以前沒有意識到....我在尋找一個28位數的base64和56/2 = 28 lol。 – Xealgo

回答

1

您必須首先將其轉換爲字節數組。

+0

我是。 sha1返回的字節數組,我做一個替換來刪除破折號,然後通過Encoding.UTF8(我嘗試過ASCII和其他幾種).GetBytes(...)將它傳遞給base64轉換函數。 – Xealgo

+0

向我們展示您的代碼和示例字符串 – Tearsdontfalls