2012-01-22 2 views
2

내 응용 프로그램에는 모든 설정이있는 부분이 있습니다. 설정 버튼을 클릭하여 액세스 할 수 있습니다. 자, 내가 원하는 것은 설정을 팝업하기 전에 작은 로그인 화면을 추가하기 때문에 관리자 만 설정을 변경할 수 있습니다.로그인 화면 만들기, WPF, 사용자 이름과 암호 저장 방법

처음에는 기본 사용자 이름 "Admin"과 암호 "AdminPass"를 추가하여 매우 간단하게 유지하려고 생각했습니다 이 코드는 userinput이 코드에 있어야하는 것과 동일한 지 확인합니다. 그것은 계속 될 부인입니다.

하지만 여기에는 단점이 있습니다. 사용자 이름과 패스가 내부에 하드 코드되어 있으므로 응용 프로그램 내에서 더 이상 변경할 수 없습니다. (내가 설정에서 그것을하지 않는 한,하지만 그건 단지 응용 프로그램 외부에서 읽을 수있는 XML이며, 따라서 올바른 해결책이 아닙니다).

그래서이 문제의 가장 좋은 방법은 무엇일까요? 따라서 처음으로 기본값으로 로그인 한 후에 관리자는 관리자 패스를 변경할 수 있으며 이는 응용 프로그램에 저장되므로 응용 프로그램이 다시 시작된 후에 저장됩니다.

답변

4

암호 해시를 텍스트 파일로 가져 오는 것이 한 가지 방법 일 수 있습니다. 그런 다음 사용자가 암호를 입력하면이를 해시합니다. 텍스트 파일에 저장된 해시와 일치합니다. 일치하면 로그인을 허용 할 수 있습니다. 사용자가 암호를 변경하기로 결정하면

마찬가지로, 당신은 또한 응용 프로그램 구성이 정보를 저장할 수 있습니다

public static string EncodePassword(string password) 
{ byte[] bytes = Encoding.Unicode.GetBytes(password); 
    byte[] inArray = HashAlgorithm.Create("SHA1").ComputeHash(bytes); 
    return Convert.ToBase64String(inArray); 
} 

암호를 해싱이 코드를 사용할 수있는 새로운

으로 이전 해시를 교체 파일

+0

텍스트 파일과 응용 프로그램 구성 파일을 메모장에서 읽을 수 있으며 암호화되지 않았습니까? – Dante1986

+0

예, 해당 파일을 읽을 수는 있지만 파일에 저장된 값은 암호화 (해시)됩니다. 따라서 사용자가 암호화 된 값을 보는지는 중요하지 않습니다. 해시 방법을 시도해보고 내가 말하고있는 것을 보자. –

+0

ahaaa, 나는 이것을 추측하려고 노력할 것이다. C#으로 그리 오래지 않아서 어떻게 작동하는지 잠시 시간을 들일 것입니다. 당신은 아마 더 자세하게 설명하는 멋진 게시물이나 사이트를 알고 있습니까? – Dante1986

0

가능하면 사용자를위한 데이터베이스 테이블을 만드는 것이 가장 좋습니다. 이렇게하면 암호를 변경하고 응용 프로그램에 대해 여러 개의 사용자 계정을 가질 수 있습니다.

데이터베이스 시스템을 사용하고 싶지 않고 높은 보안 응용 프로그램과 관련이없는 경우 암호화 된 암호를 MD5와 같은 되돌릴 수없는 암호화로 XML 파일에 저장할 수 있습니다.

System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider(); 
byte[] data = System.Text.Encoding.ASCII.GetBytes(yourPassword); 
data = x.ComputeHash(data); 
String md5Hash = System.Text.Encoding.ASCII.GetString(data); 
+0

그런 데이터베이스 테이블은 sql 또는 뭔가에 의해 수행됩니까? 이게 처음 인데요, 그래서 좀 더 설명해 주시겠습니까? 또는 튜토리얼 페이지를 가르쳐 주시겠습니까? – Dante1986

+0

Sql Server 또는 MySql과의 C# 연결 검색 암호화 된 암호가있는 플랫 파일은 사용자가 많지 않을 경우 잘됩니다. – Kypros

관련 문제