我想使用AESEncryption在Iphone中加密和解密文件。它适用于NSData。但是如果我把数据放在块中,我的文件就会变得很好。我该怎么做呢。我能够使用commoncrypto库加密和解密数据。但是当我尝试以块的形式读取数据时会出现问题。
提前谢谢你。 请帮忙。我需要尽快实现这个。
答案 0 :(得分:6)
AES加密是基于块的;它一次处理16字节数据块。如果您在不在块边界的任意点跳转到加密数据,那么当您解密时,您将获得损坏的数据。
您需要做的是计算包含要解密的区域的开始和结束块边界,进行解密,然后修剪无关字节的开始和结束。或者,只需确保您始终以16字节的倍数工作,并限制数据访问块边界。