0

plist を使用して、数十のデータをテーブルビューに解析しています。それはかなりうまくいきます。とはいえ、無防備です。誰かが .ipa ファイルの内容を開くと、その plist ファイルに簡単にアクセスできます。データを保護したい。.plist ファイルを保護する方法はありますか? 私の知る限り、Sqlite は値を複雑なキーに変換することでデータを保護します。それでも、アプリに sqlite を使用する場合は、データを文字列に解析する方法を変更する必要があります。私はSQLiteについて何も知りません。

どこから始めれば?何を指示してるんですか?iOS アプリでデータを保護するためのより簡単で優れた方法はありますか?

前もって感謝します。

私のplistの例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <dict>
        <key>quizName</key>
        <string>History</string>
        <key>quizDescription</key>
        <string>Check your knowledge about great historical events, who did what where to whom!</string>
        <key>quizImageName</key>
        <string>quiz-history.png</string>
        <key>questions</key>
        <array>
            <dict>
                <key>question</key>
                <string>In monarchy, for how long does the head of state rule?</string>
                <key>answers</key>
                <array>
                    <string>5 years</string>
                    <string>until someone else is elected</string>
                    <string>as long as he/she is the party leader</string>
                    <string>until death or abdication</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>3</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>When was World War 2 fought?</string>
                <key>answers</key>
                <array>
                    <string>1935 - 1939</string>
                    <string>1914 - 1918</string>
                    <string>1939 - 1945</string>
                    <string>1918 - 1939</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>2</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>Peloponnesian War was famous greek war between...</string>
                <key>answers</key>
                <array>
                    <string>Athens and Sparta</string>
                    <string>Greece and Persia</string>
                    <string>Athens and Attica</string>
                    <string>Greece and Macedonia</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>0</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>Battle of the Pyramids was fought between which two forces?</string>
                <key>answers</key>
                <array>
                    <string>Egypt and Rome</string>
                    <string>French and Mamluk</string>
                    <string>Egypt and Persia</string>
                    <string>Mamluk and Rome</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>1</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>First Winter Olypmics were held in...</string>
                <key>answers</key>
                <array>
                    <string>Italy, 1920</string>
                    <string>Germany, 1921</string>
                    <string>England, 1928</string>
                    <string>France, 1924</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>3</integer>
            </dict>
        </array>
    </dict>
    <dict>
        <key>quizName</key>
        <string>Animal kingdom</string>
        <key>quizDescription</key>
        <string>Not sure how many legs does the spider have? Test your knowledge and find out!</string>
        <key>quizImageName</key>
        <string>quiz-animals.png</string>
        <key>questions</key>
        <array>
            <dict>
                <key>question</key>
                <string>Where were the cats domesticated?</string>
                <key>answers</key>
                <array>
                    <string>In Greece, around 500 B.C.</string>
                    <string>In ancient Egypt, around 1.600 B.C.</string>
                    <string>In China, around 2.000 B.C.</string>
                    <string>In Mongolia, around 1.400 B.C.</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>1</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>Dogs have a range of hearing of...</string>
                <key>answers</key>
                <array>
                    <string>approximately 40 Hz to 60,000 Hz</string>
                    <string>approximately 10,000 Hz to 60,000 Hz</string>
                    <string>approximately 40 Hz to 5,000 Hz</string>
                    <string>approximately 5,000 Hz to 30,000 Hz</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>0</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>Meerkats can be found where?</string>
                <key>answers</key>
                <array>
                    <string>Australia</string>
                    <string>north Africa and south-west Asia</string>
                    <string>south Africa</string>
                    <string>Africa and Australia</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>2</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>Biggest mammal is...</string>
                <key>answers</key>
                <array>
                    <string>Blue whale</string>
                    <string>Elephant</string>
                    <string>Killer whale</string>
                    <string>Rhinoceros</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>0</integer>
            </dict>
            <dict>
                <key>question</key>
                <string>Which of these animals sheads it&apos;s skin?</string>
                <key>answers</key>
                <array>
                    <string>monkey</string>
                    <string>narwal</string>
                    <string>snake</string>
                    <string>cow</string>
                </array>
                <key>correctAnswerIndex</key>
                <integer>2</integer>
            </dict>
        </array>
    </dict>
</array>
</plist>
4

1 に答える 1

1

plist ファイルを暗号化することだけが必要な場合は、この SO question をご覧ください。

本当に sqlite が必要な場合は、sqlite を直接扱うのではなく、CoreDataを見てください。コア データは、NSObject と関係を使用してデータの保存と取得を非常に簡単にする Apple フレームワークです。コア データは、必要に応じてストレージに sqlite を使用できます。かなり急な学習曲線がありますが、習得するのに非常に役立つフレームワークであるため、学習する価値があります。

sqlite DB は、デフォルトで誰でも読み取ることができるファイルに保存されることに注意してください。そのため、暗号化するにはもう少し努力が必要です。

于 2013-01-17T20:16:12.580 に答える