2015-10-08 3 views
0

Im пытается получить объект NSData от Blob, чтобы загрузить его в веб-представление. Я прочитал документацию о SQLite.swift, но я ничего не понял. Пожалуйста, помогите мне. Я думаю, мне нужен рабочий пример.Проверьте пароль хеша md5 с быстрым

мой код: https://gist.github.com/gobozgz/9d1b02364f878bc1a026

import UIKit 
import SQLite 
class AreaInfoViewController: UIViewController { 
    @IBOutlet weak var webView: UIWebView!  
    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Here I Will load the webView PDFFile into the webView 
     // webView.loadRequest(getAreaPdf()) 
     } 

    func getAreaPdf() -> NSDATA { 
     var myPdf:NSDATA // I think this is wrong 

     let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) 
     let docsDir = dirPaths[0] 
     let databasePath = docsDir.stringByAppendingString("/db.sqlite") 
     let db = try! Connection(databasePath, readonly: true) 

     let areas = Table("areas") 
     let id = Expression<Int64>("id") 
     let name = Expression<String>("name") 
     let pdffile = Expression<SQLite.Blob>("pdffile") 
     let query = areas.select(id,name,pdffile) 
      .filter(id == 1) 
      .limit(1) 
     let result = db.prepare(query) 
     for row in result { 
      myPdf = row[pdffile] // Obviusly this is wrong 
     } 
     return myPdf // Obviusly this is wrong too 
    } 
} 
+0

В чем проблема? BTW Надеюсь, вы понимаете, что md5 - это хеш-функция недели, которая не подходит для хэширования паролей. –

+0

Я думаю, что сделал ошибку и отредактировал неправильный вопрос. Наконец, я использовал JKBCrypt и Bcript. – GoBo

ответ

0

Я наконец использовал Bcrypt вместо md5. Я использовал JKBCrypt и JKBCrypt.verifyPassword

Поскольку я использовал пароль, сохраненные из PHP генерируется хэш-я должен был немного трюк:

var hash = user[password] 
let regex = try! NSRegularExpression(pattern: "\\$2y\\$10\\$", options: .CaseInsensitive) 
hash = regex.stringByReplacingMatchesInString(hash, options: [], range: NSRange(0..<hash.utf16.count), withTemplate: "\\$2a\\$10\\$") 
auth = JKBCrypt.verifyPassword(userPassword, matchesHash: hash)! 
Смежные вопросы