JAVA password masking에 대해서 질문을 드리겠습니다.
글쓴이: anaud2 / 작성시간: 화, 2008/12/16 - 12:12오후
안녕하세요
JAVA에서 아이디와 패스워드를 입력받고 인증을 하는부분을 구현하고 있는데요
패스워드가 화면에 보여지면 안될꺼 같아서 masking을 찾고 있는데요
API에서 java.io.Console 에 readPassword 함수가 있더라구요
그래서 사용을 해봤는데...암호화가 되어서 저장이 되는건지 JAVA가 처음이라 출력을 시켰는데 이상한 값이 나와서
당혹스럽네요
import java.io.*; class pass { public static void main(String[] args) { char passwd[]; Console cons = System.console(); passwd = cons.readPassword(" Enter Your Password : "); System.out.println("The Password is : " +passwd); } } 결과 Enter Your Password : The Password is : [C@89ae9e 계속하려면 아무 키나 누르십시오 . . .
위처럼 값이 나오는 이유를 모르겠네요..Password masking을 할때 다른 함수가 있는지 궁금해서 질문을 올립니다.
Forums:
ㅇㅅㅇ
import java.io.*;
class pass
{
public static void main(String[] args)
{
char passwd[];
String stPw;
Console cons = System.console();
passwd = cons.readPassword(" Enter Your Password : ");
java.util.Arrays.fill(passwd, ' ');
stPw = new String(passwd);
System.out.println("The Password is : " + stPw);
}
}
---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.
http://jihwankim.co.nr
여러 프로그램 소스들이 있습니다.
필요하신분은 받아가세요.
저기 죄송하지만
위에서 올려주신부분을 추가 해봐도 패스워드는 화면에 보이지가 않는데요 어떻게 된것인가요..
제가 조금 이해가 안되네요
자바 버전6 부터
자바 버전6 부터 Console 클래스가 추가되었군요. (개인적으로 1.5를 사용하는지라 잠시 갸우뚱했습니다)
http://java.sun.com/javase/6/docs/api/
echoing disabled - 화면에 안뿌려진다는 뜻입니다. 암호 은닉 라이브러리가 따로 필요없네요.
[C@89ae9e - 이건 char 배열이기 때문에 이렇게 뿌려진겁니다. 배열형 변수가 이런 형태로 출력됩니다.
입력하신 패스워드를 보려면
으로 String 으로 만들어서 출력하면 됩니다.
bookgekgom 님의 소스는 패스워드(char[])를 공백으로 채웠기 때문에 안보이는 겁니다. (장난이죠.)
--
살고 싶다
--
즐 Tux~
댓글 달기