Le mot de passe de l'explorateur d'objects SQL Server est visible

Comment rendre le mot de passe non visible dans l' Explorateur d'objects SQL Server ? ( Visual Studio 2013 ). Je la search beaucoup, mais ne trouve pas. S'il vous plaît Aide entrez la description de l'image ici

Comme mentionné dans les commentaires, vous ne devez pas stocker le mot de passe en tant que text brut dans votre database.

Je vous suggère d'utiliser la fonction cryptographique et de stocker le résultat dans votre tableau.

En SQL:

HASHBYTES ('SHA2_512', 'VotrePassword')

Fonction HASBYTE: https://msdn.microsoft.com/fr-fr/library/ms174415.aspx

Vous avez un bon exemple ici:
https://www.mssqltips.com/sqlservertip/4037/storing-passwords-in-a-secure-way-in-a-sql-server-database/

Réponse courte: ce n'est pas possible.

Réponse longue: Votre problème n'est cependant pas la visibilité du mot de passe. C'est la capacité de récupération du mot de passe.

Comme dit par @Arnoud Gastelblum vous devriez avoir votre mot de passe.

Le hachage est une méthode unidirectionnelle consistant à changer un mot de passe en une string qui n'est pas réversible. De cette façon, même si la string de mot de passe est visible, elle n'a pas de sens et n'est pas réversible à un mot de passe réel.

Comment puis-je vérifier les passwords

Comme mentionné ci-dessus, le hachage est un process à sens unique. Une fois que quelque chose est haché, il n'y a pas de return possible. Donc, pour vérifier un mot de passe lorsque quelqu'un se connecte: vous hachez la string d'input que quelqu'un envoie à votre server, puis vérifiez ce hachage, avec le hachage déjà dans la database. Si elles ne sont pas identiques, le mot de passe est incorrect.

Ceci est une aide simple pour hacher le mot de passe et stocker la valeur de hachage et la valeur de sel dans DB.

public class PasswordBLL { public static bool ValidatePassword(UserObjLibrary user, ssortingng Password) { return user.passwordHash == EncodePassword(Password, user.passwordSalt); } public static int ValidatePassword(ssortingng userName, ssortingng Password, ssortingng ipAddress, ssortingng MacAddress) { UserDAL ud = new UserDAL(); UserObjLibrary user = ud.Details(userName:userName); user.lastActivity_ip = ipAddress; user.lastActive_MAC_address = MacAddress; if (user != null && user.userId > 0) ud.LogInActivity(user); if(user == null || user.userId < 1) return -1; return ValidatePassword(user,Password) ? user.userId : -2; } public static ssortingng GenerateSalt() { byte[] buf = new byte[16]; (new RNGCryptoServiceProvider()).GetBytes(buf); return Convert.ToBase64Ssortingng(buf); } public static ssortingng EncodePassword(ssortingng pass, ssortingng salt) { try { byte[] bytes = Encoding.Unicode.GetBytes(pass); byte[] src = Convert.FromBase64Ssortingng(salt); byte[] dst = new byte[src.Length + bytes.Length]; byte[] inArray = null; Buffer.BlockCopy(src, 0, dst, 0, src.Length); Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length); HashAlgorithm algorithm = HashAlgorithm.Create("SHA512"); inArray = algorithm.ComputeHash(dst); return Convert.ToBase64Ssortingng(inArray); } catch (Exception ex) { // This gets thrown if the salt is invalid return "--Invalid--"; // Any non empty value is fine to make sure the match fails } } } 

Et lorsque vous ajoutez un user à la database, générez le encryption unilatéral

 public int Add(UserObjLibrary user) { UserDAL ud = new UserDAL(); PasswordBLL pb = new PasswordBLL(); user.passwordSalt = PasswordBLL.GenerateSalt(); user.passwordHash = PasswordBLL.EncodePassword(user.password, user.passwordSalt); return ud.Add(user); } 

Validation des informations d'identification de l'user lorsque l'user tente de se connecter

 public static bool Login(ssortingng userName, ssortingng password, ssortingng ipAddress, ssortingng MacAddress) { return PasswordBLL.ValidatePassword(userName: userName, Password: password, ipAddress: ipAddress, MacAddress: MacAddress) > 0; }