これが私が間違っていることなのか、DynamoDBで起こっていることなのかはわかりません..
基本的に、私のプロジェクト用の簡単な登録/ログイン システムを構築し、ユーザーデータ/パスワードを DynamoDB インスタンスに保存し、パスワードを RIPEMD160 を使用してハッシュし、C# を使用してソルト化しますRNGCryptoServiceProvider()
。
登録は完全にうまくいくようです。問題はログイン時で、何があってもパスワードが一致しません。DynamoDB からハッシュ/ソルトを引き戻すときにファンキーな文字が戻ってくるためだと思います。まず、ハッシュとソルトの両方が長さ 20 のバイト配列であり、データベースに保存される前に文字列に変換されます。
これらの例は、dynamo Web インターフェイスからコピーして貼り付けたものです。
Example Hash: ">�Bb.ŧ�E���d��Ʀ"
Example Salt: "`���!�!�Hb�m�}e�"
それらが戻ってきて、dynamo からデータをプルバックする関数をデバッグすると、両方の文字列に異なる文字が含まれます (VS2010 デバッガー):
Returned Hash: "u001B>�Bb.ŧ�E��u0003�d�u001C�Ʀ"
Returned Salt: "`���!u000B�!�Hb�u001Dmu0012�u0001}e�"
これらの u001B、u000B、u001D、u0012、u0003、u001C、および u0001 が返されたデータに忍び込んでいるようですが、何が起こっているのか完全にはわかりません。