gpt4 book ai didi

objective-c - for 循环内存不足

转载 作者:行者123 更新时间:2023-12-02 05:03:35 24 4
gpt4 key购买 nike

嘿,所以我认为如果我制作一个生成随 secret 码的小应用程序然后让该应用程序运行所有可能性并尝试查看密码是什么并告诉我它尝试了多少次会很酷。有时该应用程序可以运行,有时它会崩溃,具体取决于密码是什么。我想知道是否可以通过使用大量内存来阻止它崩溃。这就是方法。

-(void)hackString 
{
NSString *string;
NSString *string1;
NSString *string2;
NSString *string3;
NSString *string4;
NSString *string5;

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^(void){


NSString *hackedString;

for (string in self.validLetters) {
//[hackedString appendString:string];
for (string1 in self.validLetters) {
//[hackedString appendString:string1];
for (string2 in self.validLetters) {
//[hackedString appendString:string1];
for (string3 in self.validLetters) {
//[hackedString appendString:string1];
for (string4 in self.validLetters) {
for (string5 in self.validLetters) {
hackedString = [NSString stringWithFormat:@"%@%@%@%@%@%@",string,string1,string2,string3,string4,string5];
// NSLog(@"%@",hackedString);
[self testStringWithPassword:hackedString];

}

}
}
}
}
}
});

}

我应该做些什么来阻止它崩溃?

最佳答案

如果您的应用内存不足,很可能是因为您正在用大量对象填充自动释放池以达到内存耗尽的程度。

天真地,您可以在内部 for() 循环之一周围使用 @autoreleasepool{}

但是,大多数密码输入系统会立即将密码散列为一些不可逆散列的字符串,然后将其与存储的散列进行比较。因此,您的方法不太可能对测试密码有用。您可能需要实现相同的散列。

我曾经在我公司的用户密码数据库上运行密码破解程序(有点像 John the Ripper),自动向密码薄弱的人发送电子邮件。我们最终解雇了一个人,因为他们无法想出一个无法在几分钟内被破解者破解的密码(还有其他原因,性质相似)。

关于objective-c - for 循环内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16612558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com