3

私はRubyMotionで文字列を暗号化しようとしています-理想的にはAESですが、Blowfishな​​どのより弱い/古い暗号で問題なく動作するはずです。

これまでのところ、RNCryptoとCommonCryptoの2つのポッドのコンパイルに失敗しました。

提案?他の誰かがこれらのポッドを試しましたか?

ありがとう、エイドリアン

4

2 に答える 2

3

CocoaPodsのコンパイルで問題が発生した場合は、必ずを実行してくださいrake clean。私の知る限り、CocoaPodsはRubyMotionで正常に動作するはずです。

編集:OPは答えとして彼の解決策を投稿していないので、ここに投稿します:

RNCryptorはiOS6用にビルドされておらず、ARCとの互換性がありますが、ポッドにはまだ統合されていません。

CommonCryptoに関しては、その機能を示すexample.mファイルがあります。このexample.mには、RubyMotionによって作成されたものと衝突するmain関数が含まれています。それを削除することで、私はそれを正常にコンパイルすることができました。

于 2013-01-29T01:42:52.363 に答える
1

CommonCryptoポッドを現在使用する場合に必要なプロセスは次のとおりです。

  • ポッドをRakefileに含めるか、同等のBundlerの儀式を実行してください
  • Rakefileにもapp.frameworks<<'Security'を含めることを忘れないでください
  • 次に、vendor / Pods / CommonCryptoに移動し、ファイルexample.mを削除します。

おめでとうございます、あなたはすべて準備ができています!

これが簡単な(そして汚い)サンプルです:

iv = 'init_vector_here'
key = 'key_here'
plainText = 'This is plain text'

plainData = plainText.dataUsingEncoding(NSUTF8StringEncoding)
ivData = iv.dataUsingEncoding(NSUTF8StringEncoding)
keyData = key.dataUsingEncoding(NSUTF8StringEncoding)

status = NIL
result = plainData.dataEncryptedUsingAlgorithm(0, key: keyData, initializationVector: ivData, options: 0, error: status) # 0 = AES128
p result.base64EncodedString

Base64エンコーディングの場合、「NSData+Base64」ポッドを含める必要があります。

有益な提案をしてくれた@AwDogsGo2Heavenと@JamonHolmgrenに感謝します!

于 2013-02-13T21:12:43.047 に答える