使用MonoTouch进行AES加密

Jam*_*rth 4 encryption cryptography aes xamarin.ios ios

我正在构建一个Monotouch应用程序,它从使用AES加密的服务器下载数据.然后,我需要在访问文件时解密此数据.

使用MonoTouch执行此操作的最佳方法是什么?iOS AES解密显然是硬件加速的,所以我最好打电话给CCCrypt.我对MonoTouch来说有点n00b所以有谁知道怎么做?

或者是否有更好的方法在MonoTouch中进行AES解密?

pou*_*pou 6

MonoTouch 在其类库中提供AES支持,例如RijndaelManaged类.

但是,您需要更多地了解它是如何加密的(密码模式,填充模式,密钥大小)才能解密文件.另外,根据文件大小,您可能希望在内存中解密(更安全)(如果它很小)或临时文件(如果大).

笔记:

  • Rijndael是被选为AES的算法的原始名称;

  • AES是Rijndael的子集(只有一个块大小,128位),因此您可以执行AES支持使用的所有内容RijndaelManaged;

  • 目前,MonoTouch不使用CommonCrypto(它使用Mono的托管实现),因此您无法获得硬件加速.这可能会在将来的版本中发生变化(并且对于RijndaelManaged在其应用程序中使用的人员而言将是兼容的,即简单地重新编译).

编辑

MonoTouch 5.3.3(alpha)现在默认使用CommonCrypto实现,包括AES和SHA1的硬件加速(如果可用).