public static Password crtePassword(char[] password) {
		//make sure password was passed in
		if (password != null) {
			//initialize variables for creating hash + salt out of entered password
			long lSalt = 0;
			double dSalt = 0.0;
			
			Random r = null;
			
			//get a salt value TODO: make work on first try rather than continuing to try creating one
			while (lSalt == 0) {
				r = new SecureRandom();
				dSalt = r.nextDouble();
				if (String.valueOf(dSalt).length() == 18) {
					lSalt = Long.parseLong(String.valueOf(dSalt).substring(2));
				}
			}
			
			//create instance of hash algorithm
			MessageDigest msgDig = null;	
			
			try {
				msgDig = MessageDigest.getInstance("SHA-512");
			} catch (NoSuchAlgorithmException e) {
				return null;
			}
			
			//compute hash code
			String hash = new HexBinaryAdapter().marshal(msgDig.digest((lSalt+ String.valueOf(password)).getBytes()));
			
			return new Password(lSalt, hash);
		} else {
			//no password passed in
			return null;
		}
	}