Not gonna argue the merits of your approach, but the use of "online" and "offline" attacks have meanings in this context that don't seem to match up with how you're using them: https://crypto.stackexchange.com/questions/25715/what-is-the...
A dictionary approach is something I'd normally associate with offline attacks since online requires you go through the active system which should hopefully have some sort of rate-limits to prevent that. Offline attacks can be more brute-force and don't necessarily require pre-existing knowledge.