2010-12-27 3 views
0

나는 로그인이 필요한 응용 프로그램을 가지고 있지만 응용 프로그램을 사용하는 사용자의 수는 40 명을 넘지 않습니다. 응용 프로그램에서 나는 juse가있는 SQL 서버 데이터베이스에서 데이터를 가져옵니다. 읽기 권한이 있고 또한 사용자 유효성 검사를 위해 db에 테이블을 만들 수 없습니다.db없이 사용자 정보를 저장하는 방법

또 다른 컴퓨터의 다른 데이터베이스에 사용자 테이블을 만드는 것이 좋지 않다고 생각합니다. (예를 들어, 다른 컴퓨터에서 사용자 테이블을 만들 수 있지만 사용자 유효성 검사 만하면됩니다.)?

이제 사용자 정보를 .properties 파일에 저장하면됩니다. 다른 좋은 아이디어가 있습니까?

사실, 내 응용 프로그램에 사용되는 프로그래밍 언어는 java입니다.

답변

2

XML로 파일에 데이터를 저장하는 것이 좋습니다. 암호화 된/해시 된 비밀번호도 저장됩니다. 새 사용자가 만든마다 거의 모든 언어로 XML을 구문 분석하는 표준 라이브러리가 있습니다이

<users> 
... 
... 
<user> 
    <username>first_user</username> 
    <password>some_obfuscated_password</password> 
    <permission>1,3,4</permission> 
    <otherDetails>some detail </otherDetails> 
</user> 
</users> 

같은 블록 뭔가를 추가합니다. 문제가 아니어야합니다. 그리고 파일을 보았을 때 그는 암호를 얻을 수 없습니다. 소금도 사용할 수 있습니다.

+0

좋은 생각, xml 파일에 저장하려고합니다. – hguser

+0

암호를 모호하게 만들지 마십시오. 대부분의 경우 누군가가 사용자 파일에 액세스하면 공격자는 난독을 되돌리고 일반 암호로 사용자 암호를 읽을 수 있습니다. 각 사용자마다 다른 소금 (예 : HMAC-SHA1)을 함께 사용하는 것이 좋습니다. – Robert

+0

@ 로버트 - 완전히 동의합니다. – Nishant

2

데이터를 파일에 저장하십시오. 프로그램의 여러 인스턴스가 사용중인 경우 읽기 전에 운영 체제 잠금 및 잠금 해제를 사용하십시오. 앱이 하나뿐이라면 뮤텍스 설정 (동기화 된 메소드)을 통해 얻을 수 있습니다.

+0

예, 병목 현상은 제가 신경 쓰는 것입니다 .. – hguser

관련 문제