brute force and dictionary attack