我有在編碼串,並返回URL安全字符串C#的一段代碼(即解碼以後)C#等效的base64 + UrlTokenEncode的Clojure中
string stringToEncrypt = "Winter is coming";
byte[] bytes = new byte[stringToEncrypt.Length * sizeof(char)];
System.Buffer.BlockCopy(stringToEncrypt.ToCharArray(), 0, bytes, 0, bytes.Length);
System.Web.HttpServerUtility.UrlTokenEncode(bytes).Dump();
Dump
是從LinqPad。我用它來快速測試C#的代碼片段
執行時返回VwBpAG4AdABlAHIAIABpAHMAIABjAG8AbQBpAG4AZwA1
。
我正試圖從clojure服務做同樣的事情。使用encode
庫和this answer去當我有
(String. (b64/encode (.getBytes email)) "UTF-8")
我得到V2ludGVyIGlzIGNvbWluZw==
,這是
- 沒有URL編碼
- 不匹配的C#版本。
嘗試查看UrlTokenEncode()
的MSDN文檔,但沒有太多的細節介紹它的實現,以便查看底層發生了什麼。
我可以在clojure中生成等效字符串嗎?
你可以找到UrlTokenEncode [這裏](HTTP的源代碼:/ /www.dotnetframework.org/default.aspx/[email protected]@1/[email protected]@1/[email protected]@1/DEVDIV/depot/DevDiv/releases/whidbey/NetFXspW7/ndp/fx/src/xsp/System/Web/httpserverutility @ cs/1/httpserverutility @ cs) – 2014-12-01 18:49:10
Ack。不知道爲什麼鏈接不工作。做一個谷歌搜索urltokenencode源,並點擊dotnetframework.org鏈接。 – 2014-12-01 18:55:52
@羅伯特哈維酷啊,當然,我當時看錯了地方!謝謝。 – LocustHorde 2014-12-02 09:57:07