NSString * theString=@"e88d";
NSData * data;
// something I should implement
NSLog(@"%@", theString);
NSLog(@"%@",[data description]);
我希望两张照片的结果相同。
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;
答案 0 :(得分:3)
我认为这可能会回答你的问题
答案 1 :(得分: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]);
答案 2 :(得分: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
答案 3 :(得分:0)
这个怎么样
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://..."]];
NSData *decryptedData = [data AES128DecryptWithKey:key];
NSString *mystring = [[NSString alloc] initWithData:decryptedData encoding:NSUTF8StringEncoding];