如何生成随机字母数字字符串?

时间:2012-05-18 11:08:04

标签: ios objective-c c

我想使用数字,标点符号和字母(小写和大写)生成密码。我可以随机生成这个吗?

3 个答案:

答案 0 :(得分:5)

与语言无关的版本,用于翻译成您想要的任何语言:

只需创建一个包含密码合法字符的字符串。

然后在8和14之间生成一个随机数(取决于你的长度要求)。

然后生成0(包括)和len(str)之间的许多随机数(不包括),并使用它来索引str以获得一个字符。

像(伪代码):

str = "abc...xyzABC...XYZ0...9,.="
len = rnd(7) + 8                     // rnd(n) gives 0 thru n-1
pwd = ""
while len > 0:
    pwd = pwd + str[rnd(len(str))]
    len = len - 1

这基本上会给你一个所需长度的密码,由所需的字符组成。

答案 1 :(得分:3)

自从你标记iPhone以来,我在目标c中做到了这一点。

NSString *string = @"";

for (int i = 0; i < (arc4random() % 6) + 6; i++)
{
    UniChar c = (arc4random() % 89) + 33; //Random char between ! and z
    string = [string stringByAppendingString:[NSString stringWithCharacters:&c length:1]];
}
NSLog(@"String:%@", string);
  • 我以为ascii。
  • 我假设密码长度在6到12之间。
  • 我没有在我的回答中付出太多努力,因为你没有在你的问题上投入太多精力。您应该显示what you have tried

答案 2 :(得分:0)

使用arc4random()代码并使用arc4random_stir()