Comment implémenter le hachage entre Oracle, SQL Server et ASP.NET

J'ai besoin d'get des données sensibles d'un server Oracle à un server SQL pour une utilisation sur mon site Web ASP.NET. Disons ses passwords. Nos responsables de la security disent que ces passwords doivent être sécurisés à chaque étape. Mon site Web doit pouvoir comparer l'input de l'user à ces passwords. Ces passwords doivent être transférés du server Oracle à SQL Server la nuit et ne peuvent être utilisés que sur SQL Server pendant la journée.

La meilleure solution que je peux find est que nous devons hacher les passwords sur Oracle et passer les hachages à SQL Server (supposons que la connection entre les deux est sécurisée, car ce n'est pas mon travail: P). Ensuite, mon application Web ASP.NET doit être capable d'implémenter exactement le même hachage sur l'input user afin que nous puissions comparer le hachage d'input au hachage de database.

Donc ma question est: comment puis-je hachage quelque chose en utilisant le même algorithm / key / sel sur Oracle et. NET? Je sais comment utiliser les fonctions de hachage .NET, mais je ne suis pas sûr de ce que je peux utiliser dans Oracle qui serait comparable … Je pourrais potentiellement les passer en text brut d'ASP.NET à SQL Server et les hacher là si c'est plus facile, mais appelons ça "Plan B".

Votre banque de données doit stocker des valeurs hachées, du côté asp.net, vous devez implémenter une fonction md5 pour convertir les strings en hachage, puis comparer avec la valeur hachée dans votre database.

http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_obtool.htm#i1003449

Oracle a la possibilité d'utiliser le hachage MD5, que vous pouvez passer au server SQL et à l'implémentation, ainsi qu'ASP.net.

SQL Server md5

http://www.lazerwire.com/2011/10/ms-sql-md5-hash.html

ASP.net MD5

public ssortingng CalculateMD5Hash(ssortingng input) { // step 1, calculate MD5 hash from input MD5 md5 = System.Security.Cryptography.MD5.Create(); byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input); byte[] hash = md5.ComputeHash(inputBytes); // step 2, convert byte array to hex ssortingng SsortingngBuilder sb = new SsortingngBuilder(); for (int i = 0; i < hash.Length; i++) { sb.Append(hash[i].ToSsortingng("X2")); } return sb.ToSsortingng(); }