2009-10-24 12 views

Respuesta

24
string newString = new string('*', oldString.Length); 

Por supuesto, esto es para la visualización de los equivalentes de contraseña, puede ser que sea mejor utilizar un número fijo de asteriscos - los menos pistas, mejor. Por supuesto, ya que habíamos obviamente ser hash de la contraseña (con sal) y almacenar simplemente el hash, no se podía saber la longitud real de todos modos ;-P

+1

Funciona muy bien. Gracias. – user

+1

Una cantidad fija de asteriscos no tiene sentido para un campo de entrada de contraseña. Si no le vas a dar ninguna retroalimentación al usuario, entonces es mejor que no muestres nada. – Joren

0

Otra solución sería:

Console.Write(System.Text.RegularExpressions.Regex.Replace("test",".", "*")); 
+1

Desde una perspectiva de rendimiento, sería extremadamente imprudente crear un objeto Regex para un propósito como este. Los métodos de cadena anteriores serían más efectivos. – Qwerty

+0

yah, lo sé, pero parece que la pregunta no solicitó ningún golpe de rendimiento. – daxsorbito

+1

Haga una copia de seguridad "desde una perspectiva de rendimiento ... imprudente para crear un objeto Regex". Si bien puede no ser una solución ideal aquí, esto huele a un mal caso de "adivinación de optimización prematura". –

0
var message = "hello world" ; 
var newMessage = new String('*', message.Length); 
+0

Use message.Length en su lugar –

+0

de acuerdo, tonto tonto. ¡Gracias! – Qwerty

Cuestiones relacionadas