私はRubyMotionで文字列を暗号化しようとしています-理想的にはAESですが、Blowfishなどのより弱い/古い暗号で問題なく動作するはずです。
これまでのところ、RNCryptoとCommonCryptoの2つのポッドのコンパイルに失敗しました。
提案?他の誰かがこれらのポッドを試しましたか?
ありがとう、エイドリアン
私はRubyMotionで文字列を暗号化しようとしています-理想的にはAESですが、Blowfishなどのより弱い/古い暗号で問題なく動作するはずです。
これまでのところ、RNCryptoとCommonCryptoの2つのポッドのコンパイルに失敗しました。
提案?他の誰かがこれらのポッドを試しましたか?
ありがとう、エイドリアン
CocoaPodsのコンパイルで問題が発生した場合は、必ずを実行してくださいrake clean
。私の知る限り、CocoaPodsはRubyMotionで正常に動作するはずです。
編集:OPは答えとして彼の解決策を投稿していないので、ここに投稿します:
RNCryptorはiOS6用にビルドされておらず、ARCとの互換性がありますが、ポッドにはまだ統合されていません。
CommonCryptoに関しては、その機能を示すexample.mファイルがあります。このexample.mには、RubyMotionによって作成されたものと衝突するmain関数が含まれています。それを削除することで、私はそれを正常にコンパイルすることができました。
CommonCryptoポッドを現在使用する場合に必要なプロセスは次のとおりです。
おめでとうございます、あなたはすべて準備ができています!
これが簡単な(そして汚い)サンプルです:
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に感謝します!