因为这次只要保存,所以比较简单,主要代码用的上一期的。
数据库用的是Mysql;
直接上代码:
public class MD5Util {
public static void main(String[] args) {
final int ACTIVATECODENUM = 200;
Random random = new Random();
String candicateCode = "abcdefghijklmnopqrstuvwxyz";
candicateCode += candicateCode.toUpperCase();
candicateCode += "1234567890";
for (int i = 0; i < ACTIVATECODENUM; i++) {
String res = "";
for (int j = 0; j < 6; j++) {
res += candicateCode.charAt(random.nextInt(candicateCode
.length()));
}
String pwd = MD5Util.getMD5(MD5Util.getMD5(res));
boolean x = insertToMysql(pwd);
System.out.println(pwd);
}
}
private static boolean insertToMysql(String pwd) {
int n=0;
try {
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1/new2017", "root", "admin");
String sql = "insert into checkNum(value) values(?)";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setObject(1, pwd);
n = ps.executeUpdate();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return n>0?true:false;
}
private static String byteHEX(byte ib) {
char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
'B', 'C', 'D', 'E', 'F' };
char[] ob = new char[2];
ob[0] = Digit[(ib >>> 4) & 0X0F];
ob[1] = Digit[ib & 0X0F];
String s = new String(ob);
return s;
}
// 字符串加密
public static String getMD5(String source) {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
messageDigest.update(source.getBytes());
byte[] b = messageDigest.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
sb.append(byteHEX(b[i]));
}
// sb.setCharAt(sb.length()-1, (char)(sb.charAt(sb.length()-1)+1));
return sb.toString();
}
}
运行效果:(数据库中)