最近在给登录密码加密的时候用到了随机字符串,就顺手把这个方法记录下来:
图片来自网络
一、全大小写字母字符串
//32位全大写字符串
+(NSString *)return32BigString;
//32位全小写字符串
+(NSString *)return32LittleString;
实现方法:
//32位全大写字符串
+(NSString *)return32BigString{
char data[32];
for (int x=0;x<32;data[x++] = (char)('A'+ (arc4random_uniform(26))));
return [[NSString alloc] initWithBytes:data length:32 encoding:NSUTF8StringEncoding];
}
二、大小写和数字字符串
//返回16位大小写字母和数字
+(NSString *)return16LetterAndNumber;
//返回32位大小写字母和数字
+(NSString *)return32LetterAndNumber;
实现方法
//返回16位大小写字母和数字
+(NSString *)return16LetterAndNumber{
//定义一个包含数字,大小写字母的字符串
NSString * strAll = @"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
//定义一个结果
NSString * result = [[NSMutableString alloc]initWithCapacity:16];
for (int i = 0; i < 16; i++)
{
//获取随机数
NSInteger index = arc4random() % (strAll.length-1);
char tempStr = [strAll characterAtIndex:index];
result = (NSMutableString *)[result stringByAppendingString:[NSString stringWithFormat:@"%c",tempStr]];
}
return result;
}
三、随机数的使用
//获取一个随机整数范围:[0,200)包括0,不包括100
int h = arc4random() %100;
NSLog(@"h:%d",h);
//获取一个随机数范围在[600,700],包括600
int b = 600 +arc4random() % 101;
NSLog(@"b:%d",b);
如有不明白的,可以下载demo看:<a href = "https://github.com/smileKH/HBBitString">HBBitString</a>
END.