为了安全缘故,需要对用户登录的密码进行加密,而不能将密码明文保存在数据库中,由于密码可能相同,所以加密的时候是将用户名和密码一起来加密的。用户在注册时候需要将输入的密码加密保存在数据库中,用户登录时将密码加密然后和数据库的密码对比。如相同且通过。下面是简单的算法:
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
public void testHmacSHA256() throws InvalidKeyException, NoSuchAlgorithmException {
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec("user".getBytes(), mac.getAlgorithm()));
mac.update("password".getBytes());
byte[] result = mac.doFinal();
System.out.println(new String(Base64.encodeBase64(result)));
}