2013-02-28 3 views
3

암호를 사용하지 않고 아무도 암호를 사용할 수 없도록 암호화 된 데이터베이스 파일을 만들려고합니다. 그래서 처음에는 SQLite 암호화가 내장되어 있으며, 여기에 제가 사용하고있는 코드가 있습니다. 하나는 쉽게 그래서암호로 보호 된 SQLite 데이터베이스

public void RemovePassword(SQLiteConnection conn) 
{ 
    conn.ChangePassword(null); 
} 

같은 매우 간단한 코드를 사용하여 데이터베이스의 내용을 암호를 제거하고 볼 수 있다는 것입니다에 대한 데이터베이스

public void SetPassword(byte[] password) 
{ 
    _dbConnection.SetPassword(password); 
} 

하지만 실제로 내가 당황 스럽네요의 암호를 생성 내가 암호화에서 그 빌드의 사용 궁금 해서요 그것이 쉽게 제거 될 수 있다면? 아니면 내가 언급 한 것에 대해 내가 틀린가?

+0

왜이 작업을 수행하려고합니까? 아무도 당신의 데이터베이스 파일을 보지 못하게하십시오. 응용 프로그램에서 암호를 해독 할 수 있으면 응용 프로그램에 대한 액세스 권한이있는 사용자도 암호를 해독 할 수 있으므로 동일한 시스템의 응용 프로그램에서 암호를 암호화하는 것은 아무런 의미가 없습니다. – Ryan

+0

@minitech : 그러면 어떻게 될까요? 데이터베이스 파일은 내 프로그램 실행 파일 주위에 있어야만 몸이 데이터베이스 파일을 가져와 removepassword 코드를 실행할 수 있습니다. –

+0

어, 솔루션을 제안하지 않았습니다. 나는 왜 당신이 처음부터 괴롭 히고 있는지 물었다. – Ryan

답변

4

확인 해결책은 간단하다 : 당신이 법적으로 연결하지 않은 암호가과 changepassword 기능을 사용하여

.SetPassword(password); 

는 단순히 제거 할 수 없습니다 사용하여 데이터베이스에 설정하거나 변경

데이터베이스가 이전 암호를 사용하여 {또는 어떻게 든 데이터베이스에 금이갔습니다 : D}

.ChangePassword(password); 
관련 문제