ios小项目之密码生成器-------生成密码部分

本文介绍了一个iOS小项目的实现过程,即创建一个密码生成器。通过设定密码长度和特性(如数字、字母),点击按钮可以生成相应位数的随机密码,并显示密码原文。实现步骤包括设置密码库,根据特性归类,构建特定密码库,随机选取字符生成密码,最后遍历显示密码原文。
摘要由CSDN通过智能技术生成

前面已经讲了生成密码需要用到随机数随机种子函数和随机数生成函数,下面就总结一下在这个项目中是如何结合随机数来生成密码的。

需求:输入密码长度,选择密码特点(比如包含数字,字母),点击按钮生成相应位数的密码,并把密码对应的密码原文显示出来。

实现步骤:

1.设置总的密码库(组成密码的所有可能字符)和密码原文,并用字典把密码和密码原文对应起来。

2.根据密码特性把密码归类,比如数字类,字母类,方面后面根据用户选择的密码包含哪些特点来设置密码库。

3.根据选择特点来构建一个密码库(如密码只包含数字和字母,那么这个密码库就包含所有的数字和字母)。

4.获取密码:随机的从密码库中获取每一个密码,密码库是一个字符串,把随机数对字符串的个数取模,就得到字符串个数范围内的一个随机数n,取密码库(字符串)第n个字符就得到一个随机密码。这样依次按照密码长度来循环,就得到一个随机密码。

5.遍历生产的密码,根据键值对得到每个密码原文,组成字符串显示到视图上。

代码:

#import "MainViewController.h"

#define RANDOM_SEED() srandom(time(NULL))
#define RANDOM_INT(__MIN__,__MAX__) ((__MIN__) + random() % ((__MAX__+1) - (__MIN__)))

@interface MainViewController ()

@end

@implementation MainViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    _passwordLength.delegate = self;
    _password.delegate = self;
    
    UIImage *buttonBackgrd = [[UIImage imageNamed:@"blueButton.png"] stretchableImageWithLeftCapWidth:12.0 topCapHeight:12.0];//注意:查一下这个方法
    [_creatPwButton setBackgroundImage:buttonBackgrd forState:UIControlStateNormal];
    [_emailPwButton setBackgroundImage:buttonBackgrd forState:UIControlStateNormal];
    
    [_creatPwButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [_emailPwButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    
    UIImage *buttonBackgrdSel = [[UIImage imageNamed:@"whiteButton.png"] stretchableImageWithLeftCapWidth:12.0 topCapHeight:12.0];
    [_creatPwButton setBackgroundImage:buttonBackgrdSel forState:UIControlStateHighlighted];
    [_creatPwButton setBackgroundImage:buttonBackgrdSel forState:UIControlStateSelected];
    [_emailPwButton setBackgroundImage:buttonBackgrdSel forState:UIControlStateH
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值