NSString * theString=@"e88d";
NSData * data;
// something I should implement
NSLog(@"%@", theString);
NSLog(@"%@",[data description]);
I want the results of the two printings to be the same.
AES encryption and decryption:
(1).The server:
If the plaintext is @"abcd";
The AES encrypted data(NSData data type)
is "d882830c dc892036 4345839f 13c7516a"
(2).in my local app, my code is:
NSData*data=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://..."]];
NSString * mystring= [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
However, to decrypt data successfully, I must have a data(NSData date type)
which equals to "d882830c dc892036 4345839f 13c7516a"
. But it is the mystring(NSString data type)
not the data(NSData data type)
that equals the right value.
The encryption and decryption function b开发者_如何学JAVAoth need a data(NSData data type)
as input datas.
- (NSData*)AES128EncryptWithKey:(NSString*)key;
- (NSData*)AES128DecryptWithKey:(NSString*)key;
I think this might answer your question
How do I convert a NSString value to NSData?
the description you wanna set is not an instance specific value. It's the description of the class/object. NSData will have a description of like: 'this is a data object'. You can override this value thou by overriding the method.
- (NSString *)description {
return @"e88d"; //normally used for class description
}
Ofcourse you will have to inherit the NSData object for that and then override the description like code above.
PS. I dont think you wanna use description for this just explaining what the use of it is in every class.
What you might want is:
NSString * theString=@"e88d";
NSData * data=[theString dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@", theString);
NSLog(@"%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
@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
How about this
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://..."]];
NSData *decryptedData = [data AES128DecryptWithKey:key];
NSString *mystring = [[NSString alloc] initWithData:decryptedData encoding:NSUTF8StringEncoding];
精彩评论