iOS:CCCrypt()哪个更安全KCCOPIONECBMODE或kCCModeCBC
我有一个文件,我想加密它,我利用上述功能。加密和解密工作得非常好 但我担心的是:cccrypt()中有使用默认CBC模式或指定ECB模式的选项。我正在使用ECB模式,所以如果我使用带IV的CBC模式,那么它会提供更安全的加密吗 简而言之,我应该使用默认CBC模式还是ECB模式?为什么 那静脉注射呢? 指定更长的字符串是否会使加密更加安全和随机? 对于ECB模式,它将被忽略。如果我使用CBC模式,那么IV应该是什么?请提供一个例子,这将是有益的 对于同一文件的加密和解密,IV应该相同吗?或者可以是不同的IV 那钥匙呢? 我使用的长度是128,算法是AES 我使用的键是:@“ltd@mpc"iOS:CCCrypt()哪个更安全KCCOPIONECBMODE或kCCModeCBC,ios,objective-c,xml,security,encryption,Ios,Objective C,Xml,Security,Encryption,我有一个文件,我想加密它,我利用上述功能。加密和解密工作得非常好 但我担心的是:cccrypt()中有使用默认CBC模式或指定ECB模式的选项。我正在使用ECB模式,所以如果我使用带IV的CBC模式,那么它会提供更安全的加密吗 简而言之,我应该使用默认CBC模式还是ECB模式?为什么 那静脉注射呢? 指定更长的字符串是否会使加密更加安全和随机? 对于ECB模式,它将被忽略。如果我使用CBC模式,那么IV应该是什么?请提供一个例子,这将是有益的 对于同一文件的加密和解密,IV应该相同吗?或者可以是
它强壮吗?或者我应该使用密钥:0xfedcba9876543210之类的吗?CBC模式更安全,需要使用相同的随机iv进行加密和解密,它不需要保密。有关更多信息和示例图像,请参见 使用密码时,使用密钥派生函数(如PBKDF2)从中创建随机密钥 128的密钥长度目前还可以,我一般没有理由不使用更长的密钥
考虑使用,它会处理所有这些问题,并添加身份验证和版本控制。我投票将此问题作为离题题来结束,因为这不是编程问题,前面已经讨论过:或者使用“kCCKeySizeAES128”作为密钥长度,而不是块大小。。。它们的结果是相同的值,但实际上您使用了错误的常数。非常感谢。我已经编写了将盐添加到键中,生成随机IV的代码。
//Stateless, one-shot encrypt operation
CCCryptorStatus cryptStatus = CCCrypt(
kCCEncrypt, //Operation Encrypt or Decrypt
kCCAlgorithmAES128, //Encrypt algorithm to be used
kCCOptionPKCS7Padding | kCCOptionECBMode,
keyPtr,
kCCBlockSizeAES128, //Key length
nil, //In ECB mode ignored
[datainput bytes], //Data to encrypt
dataLength, //Length of data
buffer, //Data after encrypt
bufferSize, //Size of data after encrypt
&numBytesEncrypted); //Onsuccess no.of bytes written