JAVA password masking에 대해서 질문을 드리겠습니다.

anaud2의 이미지

안녕하세요

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을 할때 다른 함수가 있는지 궁금해서 질문을 올립니다.

bookgekgom의 이미지

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

여러 프로그램 소스들이 있습니다.

필요하신분은 받아가세요.

anaud2의 이미지

위에서 올려주신부분을 추가 해봐도 패스워드는 화면에 보이지가 않는데요 어떻게 된것인가요..

제가 조금 이해가 안되네요

HotPotato의 이미지

자바 버전6 부터 Console 클래스가 추가되었군요. (개인적으로 1.5를 사용하는지라 잠시 갸우뚱했습니다)

http://java.sun.com/javase/6/docs/api/

char[] readPassword() 
  Reads a password or passphrase from the console with echoing disabled

echoing disabled - 화면에 안뿌려진다는 뜻입니다. 암호 은닉 라이브러리가 따로 필요없네요.

[C@89ae9e - 이건 char 배열이기 때문에 이렇게 뿌려진겁니다. 배열형 변수가 이런 형태로 출력됩니다.

입력하신 패스워드를 보려면

System.out.println(new String(passwd));

으로 String 으로 만들어서 출력하면 됩니다.

bookgekgom 님의 소스는 패스워드(char[])를 공백으로 채웠기 때문에 안보이는 겁니다. (장난이죠.)
--
살고 싶다

--
즐 Tux~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.