Added support for both standard and custom characters sets

This commit is contained in:
Mario Sangiorgio
2015-08-08 00:40:19 +01:00
parent 77a7b536fd
commit e4332530eb
3 changed files with 21 additions and 10 deletions

View File

@@ -148,14 +148,19 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
#pragma mark Actions
- (IBAction)_generatePassword:(id)sender {
if(self.useCustomString) {
if([[self.customCharactersTextField stringValue] length] > 0) {
self.password = [self.customCharactersTextField.stringValue passwordWithLength:self.passwordLength];
self.password = [NSString passwordWithCharactersets:self.characterFlags
withCustomCharacters:self._customCharacters
length:self.passwordLength];
}
- (NSString*)_customCharacters{
if(self.useCustomString && [[self.customCharactersTextField stringValue] length] > 0) {
return self.customCharactersTextField.stringValue;
}
}
else {
self.password = [NSString passwordWithCharactersets:self.characterFlags length:self.passwordLength];
}
else{
return @"";
}
}
- (IBAction)_toggleCharacters:(id)sender {

View File

@@ -26,7 +26,9 @@ typedef NS_OPTIONS(NSUInteger, MPPasswordCharacterFlags) {
*
* @return new password with only the allowed characters.
*/
+ (NSString *)passwordWithCharactersets:(MPPasswordCharacterFlags)allowedCharacters length:(NSUInteger)theLength;
+ (NSString *)passwordWithCharactersets:(MPPasswordCharacterFlags)allowedCharacters
withCustomCharacters:(NSString*)customCharacters
length:(NSUInteger)theLength;
/**
* Creats a password based on the supplied string
*

View File

@@ -42,7 +42,9 @@ static NSString *allowedCharactersString(MPPasswordCharacterFlags flags) {
return password;
}
+ (NSString *)passwordWithCharactersets:(MPPasswordCharacterFlags)allowedCharacters length:(NSUInteger)length {
+ (NSString *)passwordWithCharactersets:(MPPasswordCharacterFlags)allowedCharacters
withCustomCharacters:(NSString*)customCharacters
length:(NSUInteger)length {
NSMutableString *password = [NSMutableString stringWithCapacity:length];
NSString *characters = allowedCharactersString(allowedCharacters);
while([password length] < length) {
@@ -67,7 +69,9 @@ static NSString *allowedCharactersString(MPPasswordCharacterFlags flags) {
if(useCustomString && [customString length] > 0) {
return [customString passwordWithLength:passwordLength];
}
return [NSString passwordWithCharactersets:characterFlags length:passwordLength];
return [NSString passwordWithCharactersets:characterFlags
withCustomCharacters:@""
length:passwordLength];
}
- (NSString *)passwordWithLength:(NSUInteger)length {