从iOS到PHP的AES256
我正试图用Xcode对它进行解密。我真的尝试了所有的方法不同的藏书人等等 …任何事情都会出错,但我不知道该怎么办。救命啊 更新(另一种意见) 现在我试试这个:从iOS到PHP的AES256,php,ios,xcode,encryption,aes,Php,Ios,Xcode,Encryption,Aes,我正试图用Xcode对它进行解密。我真的尝试了所有的方法不同的藏书人等等 …任何事情都会出错,但我不知道该怎么办。救命啊 更新(另一种意见) 现在我试试这个: function mc_encrypt($encrypt, $key = "12345678901234567890123456789012") { $encrypt = "Affe"; $iv2 = ''; for($i=0;$i<16;$i++){ $iv2 .= "\0"; } $cip
function mc_encrypt($encrypt, $key = "12345678901234567890123456789012")
{
$encrypt = "Affe";
$iv2 = '';
for($i=0;$i<16;$i++){ $iv2 .= "\0"; }
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, ($encrypt), MCRYPT_MODE_CBC,$iv2);
$encode= base64_encode($ciphertext);
return $encode;
}
输出有时为零,有时为空。对于大多数系统,加密应该是非确定性的——对同一明文进行两次加密几乎不会产生相同的密文。为什么?假设您在第0天的午夜向您的同谋发送“黎明攻击”,攻击失败(但您安然无恙地逃脱),并且在第1天的午夜再次发送“黎明攻击” 除此之外,让我数一数:
- 您没有显示任何ObjC代码,因此很难判断出哪里出了问题
- 奇怪的是,您的PHP代码使用了26个字符的“键”。AES-128应为16字节。我不知道PHP的
如何处理过长的键;ObjC代码在mcrypt
中添加零填充fixKeyLength()
- PHP(如您所示)和ObjC代码(默认情况下)都使用固定的IVs非常糟糕。
- 他们使用不同的静脉注射,这可能是你得到不同答案的原因
只需使用HTTPS即可。不,我认为base64_编码值必须相同。为什么一边用MCRYPT_RIJNDAEL_128(128位)加密,另一边用256位加密?我尝试了太多……现在我感到困惑了——我尝试了太多库,大多数库都是128和256大小的,在任何情况下都必须相同(或类似的)…我应该使用哪个库从这个问题的公认答案开始,它包含了一些关于php和iOS加密互操作性的指针:我已经看到了,有MCRYPT_MODE_ECB,但我需要CBC。没问题,我现在就试试这个嗨,首先:我使用相同的IV。目前这只是一个测试,以后如果一切正常的话s、 它将是随机化IV。在Obj-C代码中是相同的IV(我已将其更改为与php代码中相同的IV)。thx,但我不想使用https。我需要aes256的分辨率
NSString *key = @"12345678901234561234567890123456";
NSLog(@"decrypted: %@",[AESCrypt decrypt:[request responseString] password:key]);