Swift 如何以编程方式在受密码保护的PDF文件中输入密码?

Swift 如何以编程方式在受密码保护的PDF文件中输入密码?,swift,macos,pdf,Swift,Macos,Pdf,我正在用swift制作一个OSX应用程序,它可以通过在1-9999999之间尝试每个数字,以编程方式“破解”密码。我知道字符串格式的PDF文件的位置。我怎么能, 测试PDF文件是否受密码保护? 如果是,请尝试密码是否正确? 谢谢你帮助我! 它只是为了学习而不是真正的黑客 PDF文件格式记录在中。使用这些信息,您应该能够读取PDF文件,确定它是否受密码保护,并尝试使用密码。这不是一件小事,玩得开心 我找到了我一直在寻找的答案。 以下是我如何让它工作的: 首先,将文件路径字符串转换为nsurl,并将

我正在用swift制作一个OSX应用程序,它可以通过在1-9999999之间尝试每个数字,以编程方式“破解”密码。我知道字符串格式的PDF文件的位置。我怎么能,

测试PDF文件是否受密码保护? 如果是,请尝试密码是否正确? 谢谢你帮助我!
它只是为了学习而不是真正的黑客

PDF文件格式记录在中。使用这些信息,您应该能够读取PDF文件,确定它是否受密码保护,并尝试使用密码。这不是一件小事,玩得开心

我找到了我一直在寻找的答案。 以下是我如何让它工作的:

首先,将文件路径字符串转换为nsurl,并将其设置为CFURL,如下所示:

let path : NSString = filepath as NSString        
let thePath = path.stringByExpandingTildeInPath   
let url = NSURL.fileURLWithPath(thePath)   
let CFUrl = url as CFURL
导入CoreGraphics和CoreFoundation,然后制作如下文档:

var document : CGPDFDocumentRef = CGPDFDocumentCreateWithURL(CFUrl)
if CGPDFDocumentIsUnlocked(document) {
    //true if there is NO password   
}    
if CGPDFDocumentUnlockWithPassword(document, "password here") {      
    //returns true if the password is correct   
}
现在,您可以使用CoreGraphics方法检查其是否已解锁,并输入如下密码:

var document : CGPDFDocumentRef = CGPDFDocumentCreateWithURL(CFUrl)
if CGPDFDocumentIsUnlocked(document) {
    //true if there is NO password   
}    
if CGPDFDocumentUnlockWithPassword(document, "password here") {      
    //returns true if the password is correct   
}
您可以使用dll检查pdf是否受密码保护

bool isPasswordProtected = PdfDocument.IsPasswordProtected(filePath);
打开pdf

PdfDocument doc = new PdfDocument(filePath, password))
PdfDocument doc = new PdfDocument(filePath))

你知道密码中可能也有字母吗?是的,我知道,我以后可能会关注这个问题,但现在我只想简单地使用整数密码。为此,我只需要更改猜测算法,而不是在密码正确时尝试的代码;你不应该在以后关注这个问题,因为这打破了你的整个想法,通过纯暴力破解密码是非常困难的->不可能的-一个7个字母的密码提供几十亿甚至万亿个选项。好的,然后你应该展示你迄今为止所做的尝试-你有没有任何证据证明你试图输入密码并检查保护?如果你只想破解你自己编的密码,那么为什么要包含一个PDF文件?@PoojaM.Bohora这本身就是一个新问题,因此,我认为最好单独问一个问题,因为我4年前的原始问题与显示任何内容无关。@PoojaM.Bohora:您是如何在视图上显示未受保护的文档的?@AakashWadhwa正如我上次所说,这是一个单独的问题。如果你想得到本论坛用户的帮助,请作为一个新问题单独提问。