1

ファイルと公開鍵を暗号化しました。証明書をインストールせずにアプリから復号化するにはどうすればよいですか?

ファイル public.key は、「e+ztydr5GG7saZyrIOtSWGQgHlQbuFn1IVlIIggPIWuLUNTOqN0Y...」のようになります。

ここにいくつかのコードがあります:

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"public" ofType:@"key"];  
NSData* publicKeyData = [NSData dataWithContentsOfFile:filePath];  

NSMutableDictionary * queryPublicKey = [[NSMutableDictionary alloc] init];
[queryPublicKey setObject:(id)kSecClassKey forKey:(id)kSecClass];
[queryPublicKey setObject:publicKeyData forKey:(id)kSecAttrApplicationTag];
[queryPublicKey setObject:(id)kSecAttrKeyTypeRSA forKey:(id)kSecAttrKeyType];
[queryPublicKey setObject:[NSNumber numberWithBool:YES] forKey:(id)kSecReturnRef];

OSStatus resultCode = noErr;
SecKeyRef publicKeyReference = NULL;
resultCode = SecItemCopyMatching((CFDictionaryRef)queryPublicKey, (CFTypeRef*)&publicKeyReference);

ただし、resultCode = -25300 (指定されたアイテムがキーチェーンに見つかりませんでした)。私が間違っていることは何ですか?助言がありますか?

4

2 に答える 2

1

ファイル public.key は、「e+ztydr5GG7saZyrIOtSWGQgHlQbuFn1IVlIIggPIWuLUNTOqN0Y...」のようになります。

私の目には、これは Base64 でエンコードされた文字列に非常によく似ています。セキュリティ API に渡すには、ほとんどの場合、生のエンコードされていないバイトが必要です。このファイルをアプリのバンドルに入れる場合、おそらく最も簡単な方法は、事前にデコードし、未加工のバイナリをアプリに保存することです。

于 2010-04-12T14:22:24.320 に答える
-1

公開鍵でファイルを復号化することはできません。公開鍵で暗号化し、秘密鍵で復号化します。これが非対称アルゴリズムの基本原則です。公開鍵 (つまり、誰もが知っているもの) で復号化できる場合、暗号化されたファイルのセキュリティはどこにあるのでしょうか?

于 2010-04-12T14:30:07.720 に答える