gpt4 book ai didi

php - 加密解密有什么问题?

转载 作者:行者123 更新时间:2023-12-01 18:28:12 25 4
gpt4 key购买 nike

在服务器端用php加密数据并在iOS中解密失败。

在php的服务器上,它看起来像这样(仅用于测试):

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, "a16byteslongkey!a16byteslongkey!", "iphone", MCRYPT_MODE_CBC, $iv);
$base64encoded_ciphertext = base64_encode($ciphertext);
return $base64encoded_ciphertext;

在iOS中:
 NSData *decrypted = [[RNCryptor AES256Cryptor] decryptData:[QSStrings decodeBase64WithString: text] password:@"a16byteslongkey!a16byteslongkey!" error:&error];

NSLog(@"errro - %@", [error description]);

NSString *decryptedString = [[[NSString alloc] initWithData: decrypted encoding: NSUTF8StringEncoding] autorelease];

错误说明是:
Error Domain=net.robnapier.RNCryptManager Code=2 "Unknown header" UserInfo=0x8582e10 {NSLocalizedDescription=Unknown header}

使用RNCryptor: https://github.com/rnapier/RNCryptor

在加密器中抛出错误的地方:
  if (![header isEqualToData:[NSData dataWithBytes:AES128CryptorHeader length:sizeof(AES128CryptorHeader)]]) {
*error = [NSError errorWithDomain:kRNCryptorErrorDomain code:kRNCryptorUnknownHeader
userInfo:[NSDictionary dictionaryWithObject:NSLocalizedString(@"Unknown header", @"Unknown header") forKey:NSLocalizedDescriptionKey]];
return NO;

}

这有什么问题呢?

最佳答案

只要阅读RNCryptor的站点,我相信它是完整的消息输入输出加密器。如果您查看其Wiki上的数据格式

https://github.com/rnapier/RNCryptor/wiki/Data-Format

我相信他们期望到ENCRYPT的数据没有头,但是如果您正在解密,则它期望使用他们的加密器对数据进行加密,从而增加头和hmac。

如果我是对的,那么服务器端汇总的数据就是RNCryptor希望看到的完整消息的密文部分!

关于php - 加密解密有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11262539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com