import java.security.MessageDigest; import java.util.Random; import sun.misc.BASE64Encoder; // 令牌产生器 public class TokenProccessor { // 单例 private TokenProccessor(){} private static TokenProccessor instance = new TokenProccessor(); public static TokenProccessor newInstance() { return instance; } // 产生令牌 public String makeToken() { try { // 1. 产生一个随机数 String token = new Random().nextInt(19999999) + "" + System.currentTimeMillis(); // 2. 长度大小不一致 // 指纹算法 消息摘要 md5 MessageDigest MessageDigest messageDigest = MessageDigest.getInstance("md5"); byte[] md5 = messageDigest.digest(token.getBytes()); // 将 任意的字节数组 转为可见的字符 转为明文 // base64 算法 BASE64Encoder encoder = new BASE64Encoder(); String result = encoder.encode(md5); return result; } catch (Exception e) { throw new TokenException(e); } } } package cn.easyknow.elec.test; import java.security.MessageDigest; import java.util.Random; import sun.misc.BASE64Encoder; // 令牌产生器 public class md5Digest { // 产生令牌 public static String makeToken(String password) { try { MessageDigest messageDigest = MessageDigest.getInstance("md5"); byte[] md5 = messageDigest.digest(password.getBytes()); // 将 任意的字节数组 转为可见的字符 转为明文 // base64 算法 BASE64Encoder encoder = new BASE64Encoder(); String result = encoder.encode(md5); return result; } catch (Exception e) { throw new RuntimeException(e); } } public static void main(String[] args) { String token = makeToken("123411111"); System.out.println(token); } }
Md5+Base64产生令牌
猜你喜欢
转载自houston123.iteye.com/blog/2317475
今日推荐
周排行