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文件需要我们去下载谷歌开源代码。