現在,我不知道這是否是我做錯了,或者說多數民衆贊成在DynamoDB發生..字符串最初字節數組有時髦值
基本上而言,我建立一個簡單的註冊/登錄系統,將用戶數據/密碼保存在使用RIPEMD160密碼哈希的DynamoDB實例中,並使用C#的RNGCryptoServiceProvider()
進行鹽析。
註冊似乎工作得很好。問題出在登錄時,不管密碼是什麼,密碼都不匹配,而且我認爲它是因爲我在從DynamoDB中抽取hash/salt時遇到了一些時髦的字符。首先,哈希和salt都是長度爲20的字節數組,並在保存到數據庫之前轉換爲字符串。
這些例子複製/發電機Web界面
Example Hash: ">�Bb.ŧ�E���d��Ʀ"
Example Salt: "`���!�!�Hb�m�}e�"
當他們回來粘貼和我調試成拉回從發電機的數據功能,這兩個字符串有不同的字符(VS2010調試):
Returned Hash: "u001B>�Bb.ŧ�E��u0003�d�u001C�Ʀ"
Returned Salt: "`���!u000B�!�Hb�u001Dmu0012�u0001}e�"
似乎這些u001B,u000B,u001D,u0012,U0003,u001C和U0001是潛入返回的數據,我不能完全肯定怎麼回事?
關於最後一個音符,亞馬遜DynamoDB具有文本/號碼/只有這些屬性的集合。他沒有選擇。 –
使用convert將原始數據轉換爲Base64字符串,然後將其作爲字符串存儲在一個發電機行中,然後使用convert將其轉換回來是一種很好的解決方法,因爲發電機不支持二進制數據類型。 – sungiant