2009-10-24 40 views

Trả lời

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

Tất nhiên, điều này là để hiển thị số lượng tương đương mật khẩu, có thể tốt hơn khi sử dụng số dấu hoa thị cố định - ít đầu mối càng tốt. Tất nhiên, kể từ khi bạn muốn rõ ràng được băm mật khẩu (muối) và lưu trữ chỉ là băm, bạn không thể biết được chiều dài thực tế nào ;-p

+1

Hoạt động tuyệt vời. Cảm ơn bạn. – user

+1

Một số dấu hoa thị cố định không có ý nghĩa đối với trường nhập mật khẩu. Nếu bạn sẽ cung cấp cho người dùng không có bất kỳ phản hồi nào, thì bạn cũng có thể không hiển thị gì cả. – Joren

0

Một giải pháp khác sẽ là:

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

Từ góc độ hiệu suất, sẽ cực kỳ không khôn ngoan khi tạo đối tượng Regex cho một mục đích như thế này. Các phương thức chuỗi trên sẽ có hiệu suất cao hơn. – Qwerty

+0

yah, tôi biết nhưng có vẻ như câu hỏi đã không yêu cầu bất kỳ sự đánh trúng nào. – daxsorbito

+1

Vui lòng sao lưu "từ góc độ hiệu suất ... không khôn ngoan để tạo đối tượng Regex". Mặc dù nó có thể không phải là một giải pháp lý tưởng ở đây, điều này có mùi giống như một trường hợp xấu của "phỏng đoán tối ưu sớm". –

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

Sử dụng tin nhắn.Length thay vì –

+0

đã đồng ý, lỗi chính tả ngớ ngẩn. cám ơn! – Qwerty

Các vấn đề liên quan