Пожалуйста, обратите внимание на следующий код:SHA512 хеширования с Xamarin
SHA512 shaM = new SHA512Managed();
byte[] data = shaM.ComputeHash(Encoding.UTF8.GetBytes("password"));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
string stringyHash = sBuilder.ToString();
Я использую выше метод для генерации SHA512 хэшируются пароль для андроид устройства с помощью Xamarin. Однако, когда я вывожу stringyHash
я дал совершенно другой хэш к тому, что я ожидаю при использовании онлайн-сервиса хеширования, таких как: http://www.convertstring.com/Hash/SHA512
Разница для хэширования строки «пароль» между онлайн-инструментом и моей реализации Xamarin как следующим образом:
Xamarin:
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
Интернет инструмент:
B109F3BBBC244EB82441917ED06D618B9008DD09B3BEFD1B5E07394C706A8BB980B1D7785E5976EC049B46DF5F1326AF5A2EA6D103FD07C95385FFAB0CACBC86
Я относительно новым для Xamarin и имеют мало опыта хэширования как понятие, так что если кто-то может объяснить, почему две разные, и как настроить мой код, чтобы убедиться, что я делаю правильный хэш, было бы оценено.
The * b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86 * это один порожденный .NET на Visual Studio ... Так что если есть проблема, то в Xamarin. – xanatos
Я бы предложил вам, чтобы не хеш в вашем конечном устройстве (производительность). Скорее сделайте это в своем бэкэнде (webservice или около того). Также вы можете попробовать использовать класс SHA512 в .NET. См. Здесь: [link] (https://msdn.microsoft.com/de-de/library/system.security.cryptography.sha512 (v = vs.110) .aspx = –
Это для проверки пароля, а не для создания , поэтому хэшированный PW уже хранится в фоновом режиме, но я бы предпочел не отправлять простой текстовый пароль по потенциально незащищенным сетям. – Aphire