Pergunta

Estou desenvolvendo um aplicativo para iPhone que usa Core Data com um armazenamento de dados SQLite e lotes de imagens no pacote de recursos. Eu quero uma maneira "simples" para ofuscar a estrutura do banco de dados SQLite e os arquivos de imagem de arquivo para impedir que o hacker casual / desenvolvedor sem escrúpulos de ter acesso a eles. Quando o aplicativo é implantado, os ficheiros de arquivo de banco de dados e imagem seria ofuscado. Ao iniciar o aplicativo seria lido em e un-ofuscar o arquivo de banco de dados, escrever a versão ofuscada-un para os usuários diretório "tmp" para uso por dados básicos, e ler / arquivos de imagem un-Ofuscação conforme necessário.

Eu gostaria de aplicar um algoritmo simples para os arquivos que, de alguma forma embaralhar / manipular os dados do arquivo para que os dados do banco de dados SQLite não é perceptível quando o db é aberto em um editor de texto e de modo que nem é reconhecida pela outras aplicações (SQLite Manager, Photoshop, etc.)

Ao que parece, a partir da informação que eu li, que eu poderia usar NSFileManager, NSKeyedArchiver e NSData para alcançar este objetivo, mas não tenho certeza de como proceder. desenvolver sido software por muitos anos, mas eu sou novo para tudo CocoaTouch, Mac e iPhone. Também nunca teve para garantir / encriptar meus dados assim que esta é nova.

Todos os pensamentos, sugestões ou links para soluções são apreciados.

Foi útil?

Solução

Você pode usar o gzip para compactar o arquivo. Remover a extensão e remover o cabeçalho do arquivo, então seria muito difícil de adivinhar como para desencriptar que se alguém arrumou uma cópia do banco de dados compactado.

Quando você quer ler de novo, pré-PEND o cabeçalho gzip e descomprimir. gzip está disponível no iPhone

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top