我可以使用crypto_box_seal_open解密自己的消息吗?

时间:2019-06-03 08:57:58

标签: objective-c libsodium

我已经使用crypto_box_seal通过他人的公共密钥加密了一条消息。收件人可以使用自己的密钥对对其进行解密,而不会出现任何问题。

if(crypto_box_seal_open(decryptedMessage, [ciphertextDataDerived mutableBytes], [ciphertextDataDerived length], [pubkey bytes], [privkey bytes]) != 0){
   NSLog(@"Oops! Error on decryption");
} else {
   NSUInteger sizeDecrypted = sizeof(decryptedMessage);
   NSData* dataDecrypted = [NSData dataWithBytes:(const void *)decryptedMessage length:sizeof(unsigned char)*sizeDecrypted];
   NSString *decryptedString = [[NSString alloc] initWithData:dataDecrypted encoding:NSUTF8StringEncoding];
   NSLog(@"Decrypted Message: %@", decryptedString);
}

但是也可以解密我自己的消息。如果是这样,怎么办? 我曾尝试使用自己的公钥和私钥对其进行解密,但失败了。

1 个答案:

答案 0 :(得分:0)

如果实际上可以使用除接收者的私钥以外的任何其他东西来解密消息,则表明整个星球的软件安全性实际上是无效的。 因此,不能,除非收件人将您的私钥泄露给您,否则您就无法解密您的原始消息,当然他们绝对不应该这样做。