Как сгенерировать токен Nonce для клиента iOS?

Есть ли способ создать токен Nonce на стороне клиента iOS, используя имя пользователя и общий секретный ключ, а также дайджест пароля. Одноразовый номер требуется при создании запроса на основе SOAP к одному из моих приложений.

Дайте мне знать, если вам нужна дополнительная информация или подробности по этому поводу.

Спасибо.


person Manoj    schedule 24.04.2013    source источник
comment
Просто создайте случайную строку или GUID. nonce — это просто случайное число или строка.   -  person rckoenes    schedule 24.04.2013


Ответы (1)


Вот класс, который создает UUID категорию на NSString :

NSString+UUID.h

#import <Foundation/Foundation.h>

@interface NSString (UUID)

+ (NSString *) stringWithUUID;

@end

NSString+UUID.m

#import "NSString+UUID.h"

@implementation NSString (UUID)

+ (NSString *) stringWithUUID {
    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return (__bridge NSString *)string;
}

@end
person rckoenes    schedule 24.04.2013
comment
Если вы используете iOS 6, вы можете упростить это до NSString *uuid = [[NSUUID UUID] UUIDString]; - person CaptainRedmuff; 24.04.2013
comment
@rckoenes Спасибо за часть GUID, я реализовал это раньше. Однако у меня сложилось впечатление, что nonce отличается от guid. Я попробую с guid и посмотрю, что всплывает. - person Manoj; 24.04.2013
comment
@CaptainRedmuff Спасибо за ответ. - person Manoj; 24.04.2013
comment
@Kumar Я всегда использовал GUID или UUID для одноразового номера, ключ в том, что одноразовый номер является случайным и не может быть гостем. - person rckoenes; 24.04.2013
comment
@rckoenes Я пробовал с гидом, это никогда не срабатывало. Приложение подключается к API-интерфейсу Site Catalyst и нуждается в одноразовом номере и passwordDigest в заголовке запроса. Когда я просматривал их документацию, они упомянули о вызове md5(rand()) для создания одноразового номера как части реализации php. developer.omniture. com/en_US/блог/. Вот ссылка для получения дополнительной информации о том, что они предоставили в качестве документации. - person Manoj; 26.04.2013
comment
UUID примерно такой же, как md5(rand()). rand() генерирует случайное число, которое затем хешируется как MD5. UUID должен быть достаточно случайным. но вам может понадобиться удалить все - из строки. - person rckoenes; 26.04.2013
comment
да, я удалил дефис (-) и использовал остальную часть. - person Manoj; 26.04.2013