Maintenant, je ne sais pas si cela est quelque chose que je fais mal, ou quelque chose qui se passe dans des thats DynamoDB ..chaînes de DynamoDB qui étaient à l'origine des tableaux d'octets ont des valeurs géniales
Fondamentalement, Im la construction d'un simple enregistrement/système de connexion pour mon projet, en enregistrant le userdata/mot de passe dans une instance DynamoDB avec le mot de passe hashed en utilisant RIPEMD160, et salé aussi en utilisant RNGCryptoServiceProvider()
de C#.
L'enregistrement semble fonctionner parfaitement. le problème est lors de la connexion, quoi qu'il arrive, les mots de passe ne correspondent pas, et je pense que c'est parce que je récupère des caractères géniaux en retirant le hachage/salt de DynamoDB. Tout d'abord, le hachage et le sel sont des tableaux d'octets de longueur 20, et convertis en chaînes avant d'être sauvegardés dans la base de données.
Ces exemples sont copier/coller à partir de l'interface Web de dynamo
Example Hash: ">�Bb.ŧ�E���d��Ʀ"
Example Salt: "`���!�!�Hb�m�}e�"
Quand ils reviennent et je débogage dans la fonction qui retire les données de dynamo, les deux chaînes ont des caractères différents (VS2010 Debugger):
Returned Hash: "u001B>�Bb.ŧ�E��u0003�d�u001C�Ʀ"
Returned Salt: "`���!u000B�!�Hb�u001Dmu0012�u0001}e�"
Semble ces u001B, u000B, u001D, u0012, u0003, u001C et U0001 sont faufilant dans les données renvoyées, et je ne suis pas tout à fait sûr ce qui se passe?
En ce qui concerne la dernière note, DynamoDB d'Amazon a text/Numéro/ensembles de ces attributs seulement. il n'avait pas le choix. –
L'utilisation de convert pour transformer les données brutes en chaîne Base64, puis en les stockant dans une ligne dynamo sous forme de chaîne, puis en utilisant convert pour les réactiver est une bonne solution au fait que dynamo ne prend pas en charge un type binaire. – sungiant