2011-04-13 6 views
2

sqlcipher를 사용하여 데이터베이스를 암호화하려고합니다.SQL 암호를 사용하여 데이터베이스를 암호화하는 방법

내가 통합 한 openssl과 sqlcipher 통합을 완료했으며 빌드가 완벽하게 작동합니다.

하지만 내 문제는 내 데이터베이스를 암호화 할 수 없다는 것입니다. SQL 암호를 사용하여 데이터베이스를 암호화하는 작업이나 방법을 수행하는 방법을 모르겠습니다.

나는 SQL Cipher을 읽었지만 같은 과정을 이해할 수는 없습니다. 나는 그들에 의해 제공되지만 작동하지 않는 코드를 시도했다.

EDIT : PRAGMA 키를 설정하고 암호화를 시작하는 방법을 알려줄 수 있습니까? 내 암호화가 완료 될 때까지이 부분 만 남습니다.

이 상황에서 나를 도우십시오.

미리 감사드립니다.

+0

난 그냥 암호화 된 수출 허위 법률 서류 (약 1 개월 걸렸어, 그냥 바보 같은 데이터베이스를 암호화하기 때문에). 암호화를 사용하려면 응용 프로그램을 제출할 준비가되었을 때가 아니라 지금 서류 작업을하십시오. 그러면 시간이 많이 절약됩니다. – JustSid

+0

iPhone에서 암호화하고 싶습니까? 또는 당신이 서버 또는 무언가에서 얻기 전에? –

+0

데이터베이스를 만들 때 MAC 또는 Windows의 다른 외부 응용 프로그램이 데이터베이스에 액세스 할 수 없도록 암호화해야합니다. –

답변

3

SQLCipher를 사용하면 새로운 SQLite 데이터베이스를 가지고 있는지 확인하십시오. 어떤 이유로 데이터베이스에 이미 데이터가있는 동안 키를 사용하여 데이터베이스를 pragma하려고하면 해독하려고 시도합니다.

여기에 working with an existing SQLite database에 대한 몇 가지 추가 정보가 있습니다. 이 예제에서 encrypted.db는 새로 생성하고 pragma하는 새로운 데이터베이스입니다.

ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'secret'; -- create a new encrypted database 
CREATE TABLE encrypted.t1(a,b); -- recreate the schema in the new database (you can inspect all objects using SELECT * FROM sqlite_master) 
INSERT INTO encrypted.t1 SELECT * FROM t1; -- copy data from the existing tables to the new tables in the encrypted database 
DETACH DATABASE encrypted; 
+0

안녕하세요 조, 난 SQL 명령 프롬프트에서 위의 명령을 시도했다 또한 성공을 가지고 있지만 개발을위한 xcode와 동일한 사용하는 방법을 몰라 내. db 파일을 아이폰에 대한 코드를 사용하여 암호화. 어떻게 할 수 있는지 알려주시겠습니까? –

+0

설정/목표는 무엇입니까? 컴퓨터에 이미 데이터로 채워져 있고 iPhone에서 이미 암호화되어있는 SQLite 데이터베이스가 있습니까? 아니면 아이폰에 설정해야 할 스키마가 있으며 수집 된 모든 데이터가 암호화됩니다. – Joe

+0

iOS에서 SQLCipher를 사용하는 경우 SQLite C API를 사용하여 데이터베이스와 상호 작용합니다. [이 튜토리얼] (http://sqlcipher.net/documentation/ios#solution)의 끝 부분에는 API를 사용하여 비밀번호를 설정하는 방법에 대한 몇 가지 예가 나와 있습니다. [SQLite 온라인] (http://www.sqlite.org/cintro.html)에 대한 참조 문서를 찾을 수 있습니다. 마지막으로 [SQLCipherSpeed ​​on GitHub] (https://github.com/sjlombardo/SQLCipherSpeed)라는 SQLCipher를 사용하여 완벽하게 작동하는 iOS 응용 프로그램을 볼 수 있습니다. –

관련 문제