public byte[] preHash(String username, String password) {
		try {
			// Hash the password with the user id (a constant salt)
			MessageDigest md = MessageDigest.getInstance("SHA-256");
			String seed = username.toLowerCase() + password;
			byte[] bytes = seed.getBytes("UTF-8");
			
			// Do some key stretching to slow down brute force attacks
			for (int i = 0; i < hashStretchFactor; i++) {
				md.update(bytes);
				bytes = md.digest();
			}
			return bytes;
		} catch (NoSuchAlgorithmException | UnsupportedEncodingException ex) {
			Alerter.getHandler().severe("Authetication", "Unable to securely prepare password for transmission. Login failed. " + ex.getMessage());
			return null;
		}
	}