ios动态口令的生成。(TOTP算法)

1.动态口令的生成,现在都是基于谷歌的开源。具体的实现可以参考这个链接。https://www.jianshu.com/p/4517d3a8dfcd。说明的很详细。

2.但是做到这一步,发现还是和后台的有出入,是因为后台给我门的screet是经过base32

编码过的,需要我们转码,才能实现和后台一样。

3.具体如下:

static NSString *const kBase32Charset = @"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";

staticNSString*constkBase32Synonyms =

@"AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";

staticNSString*constkBase32Sep =@" -";

- (NSData*)base32Decode:(NSString*)string {

    GTMStringEncoding *coder =

    [GTMStringEncoding stringEncodingWithString:kBase32Charset];

    [coderaddDecodeSynonyms:kBase32Synonyms];

    [coderignoreCharacters:kBase32Sep];

    return[coderdecode:string];

}



4.这个GTMStringEncoding文件需要我们去下载谷歌开源代码。

你可能感兴趣的:(ios动态口令的生成。(TOTP算法))