我正在swift中创建一个os x应用程序,它可以通过编程方式“破解”'通过尝试1-99999999中的每个数字来设置密码。我知道PDF文件的位置是字符串格式。我怎么能,
谢谢你的帮助! (它仅用于学习目的而不是真正的黑客攻击;))
答案 0 :(得分:4)
我在this apple site找到了我想要的答案。 以下是我设法让它发挥作用的方式:
首先将文件路径字符串转换为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)
现在您可以使用CoreGraphics方法检查它是否已解锁并输入如下密码:
if CGPDFDocumentIsUnlocked(document) {
//true if there is NO password
}
if CGPDFDocumentUnlockWithPassword(document, "password here") {
//returns true if the password is correct
}
答案 1 :(得分:0)
PDF文件格式记录在Adobe/ISO specification中。使用该信息,您应该能够读取PDF文件,确定它是否受密码保护,并尝试输入密码。不会是一项小任务,玩得开心!
答案 2 :(得分:0)
您可以使用Docotic.Pdf dll检查pdf是否受密码保护。
bool isPasswordProtected = PdfDocument.IsPasswordProtected(filePath);
打开pdf
PdfDocument doc = new PdfDocument(filePath, password))
PdfDocument doc = new PdfDocument(filePath))