2
NSString * theString=@"e88d";
NSData * data;

// something I should implement

NSLog(@"%@", theString);

NSLog(@"%@",[data description]);

2 つの印刷の結果が同じであることを望みます。


AES 暗号化と復号化:

(1). サーバー:

平文が@"abcd";

AES暗号化data(NSData data type)"d882830c dc892036 4345839f 13c7516a"

(2)私のローカルアプリでは、私のコードは次のとおりです。

NSData*data=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://..."]]; 
NSString * mystring= [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

ただし、データを正常に復号化するには、data(NSData date type)に等しい が必要"d882830c dc892036 4345839f 13c7516a"です。しかし、正しい値に等しいのは ではありmystring(NSString data type)ません。data(NSData data type)

暗号化機能と復号化機能の両方でdata(NSData data type)、入力データとして が必要です。

- (NSData*)AES128EncryptWithKey:(NSString*)key;
- (NSData*)AES128DecryptWithKey:(NSString*)key;
4

4 に答える 4

3

これはあなたの質問に答えるかもしれないと思います

NSString 値を NSData に変換するにはどうすればよいですか?

于 2010-03-11T09:05:04.220 に答える
1

設定したい説明は、インスタンス固有の値ではありません。クラス/オブジェクトの説明です。NSData には、「これはデータ オブジェクトです」などの記述があります。メソッドをオーバーライドすることで、この値をオーバーライドできます。


- (NSString *)description {
    return @"e88d"; //normally used for class description
}

もちろん、そのために NSData オブジェクトを継承し、上記のコードのように説明をオーバーライドする必要があります。

PS。すべてのクラスでの使用方法を説明するだけで、これに説明を使用したいとは思いません。


あなたが望むかもしれないものは次のとおりです:


NSString * theString=@"e88d";
NSData * data=[theString dataUsingEncoding:NSUTF8StringEncoding];

NSLog(@"%@", theString);
NSLog(@"%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
于 2010-03-11T10:10:01.063 に答える
0

これはどう

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://..."]];
NSData *decryptedData = [data AES128DecryptWithKey:key];
NSString *mystring = [[NSString alloc] initWithData:decryptedData encoding:NSUTF8StringEncoding];
于 2010-03-12T09:37:49.517 に答える
0
@interface NSString (Joke)
- (NSString *)description;
@end
@implementation NSString (Joke)
- (NSString *)description
{
    return @"Panda!";
}
@end

@interface NSData (Joke)
- (NSString *)description;
@end
@implementation NSData (Joke)
- (NSString *)description
{
    return @"Panda!";
}
@end
于 2010-03-11T11:12:35.827 に答える