iOS中使用AES加密,密码过长导致加密数据不正确

AES加密数据对照网站:
http://tool.chacuo.net/cryptaes

如题,iOS中使用AES加密的时候,如果密码过长,比如是32位密码,会导致加密数据不正确,跟一下代码,同样的数据,如果加密出来的和网站上的结果不一样,就说明加密方法不对(不要怀疑网站~)

现在网上的资料一般能找到2种普遍方法:NSData+AES128 和 NSData+AES256

可参考如下资料: https://www.jianshu.com/p/7a28b6ae7481 内容写的非常详细

在iOS中使用AES进行加密解密的一个关键的函数:

CCCryptorStatus CCCrypt(

 CCOperation op,  /* kCCEncrypt, etc. */

 CCAlgorithm alg, /* kCCAlgorithmAES128, etc. */

 CCOptions options, /* kCCOptionPKCS7Padding, etc. */

 const void *key,

 size_t keyLength,

 const void *iv,  /* optional initialization vector */

 const void *dataIn,  /* optional per op and alg */

 size_t dataInLength,

 void *dataOut, /* data RETURNED here */

 size_t dataOutAvailable,

 size_t *dataOutMoved)

 __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);

如果密码是32长度的字符串,加密出来的数据是不正确的,就算调整const void *key参数为char keyPtr[kCCKeySizeAES256+1] 结果还是和网站加密出来的不一样,出现这种情况后,原因之一就是密码长度是32导致的

AESCipher-iOS

这是大神用C语言写的AES加密解密方法,可解决上面那种不正确的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值