У меня есть значение pinNumber. Как замаскировать его (т.е.) сказать, если мой pinNumber равен 1234 и замаскировать его четырьмя символами звездочки, а не показывать цифры. Это маскированное значение будет показано на веб-странице с помощью jsp.Как замаскировать значение в java?
0
A
ответ
2
В какой-то момент вашего кода вы преобразуете число в строку для отображения. На данный момент, вы можете просто вызвать метод replaceAll струны, чтобы заменить все символы 0-9 с символом *:
s.replaceAll("[0-9]", "*")
хорошо - это то, как вы делаете это непосредственно в Java. В JSP позаботиться о вас, как показывают другие плакаты, если вы выберете тип «пароль» на вашем входе.
2
<input type="PASSWORD" name="password">
Если вы собираетесь отобразить пароль на этикетке, просто отображать 5 или 6 символов звездочки, как вы не хотите, чтобы дать им ключи, делая длину этого ярлыка с длиной пароля.
0
Вы создаете форму, как, что
<form action="something" method="post">
pinNumber:<input type="password" name="pass"/>
<input type="submit" value="OK"/>
</form>
то изменит в *
0
Этот код может помочь вам.
class Password {
final String password; // the string to mask
Password(String password) { this.password = password; } // needs null protection
// allow this to be equal to any string
// reconsider this approach if adding it to a map or something?
public boolean equals(Object o) {
return password.equals(o);
}
// we don't need anything special that the string doesnt
public int hashCode() { return password.hashCode(); }
// send stars if anyone asks to see the string - consider sending just
// "******" instead of the length, that way you don't reveal the password's length
// which might be protected information
public String toString() {
StringBuilder sb = new StringBuilder();
for(int i = 0; < password.length(); i++)
sb.append("*");
return sb.toString();
}
}
0
Я использую следующий код в своем приложении и отлично работает.
public class Test {
public static void main(String[] args) {
String number = "1234";
StringBuffer maskValue = new StringBuffer();
if(number != null && number.length() >0){
for (int i = 0; i < number.length(); i++) {
maskValue.append("*");
}
}
System.out.println("Masked Value of 1234 is "+maskValue);
}
}
Ans - Masked Value of 1234 is ****
0
Два пути (это будет маскировать все charecters не только цифры):
private String mask(String value) {
StringBuilder sb = new StringBuilder();
for(int i = 0; i < value.length(); sb.append("*"), i++);
return sb.toString();
}
или:
private String mask(String value) {
return value.replaceAll(".", "*");
}
Я использую второй
вероятно <входной тип =» пароль "/>? – svz
Как вы будете показывать свой пароль в jsp? Почему вы хотите замаскировать свой пароль в своих Java-классах, а не при рендеринге его на экране? – Filip