package org.groovymud.shell.security;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import com.thoughtworks.xstream.core.util.Base64Encoder;
/**
*
* performs encrypt operations on passwords
*
* @author matt
*
*/
public class PasswordService {
public synchronized String encrypt(String plaintext) throws PasswordException {
MessageDigest md = null;
try {
md = MessageDigest.getInstance("SHA"); // step 2
} catch (NoSuchAlgorithmException e) {
throw new PasswordException(e.getMessage());
}
try {
md.update(plaintext.getBytes("UTF-8")); // step 3
} catch (UnsupportedEncodingException e) {
throw new PasswordException(e.getMessage());
}
byte raw[] = md.digest(); // step 4
String hash = (new Base64Encoder()).encode(raw); // step 5
return hash; // step 6
}
}