1187163927
2018-04-28 15:06:31
java自定义加密算法
java实现的自定义算法
import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Random; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author dpchenh */ public class MyRandom extends Thread { @Override public void run() { // 没隔一秒生成一个随机字符串:该字符串包含2个数字 5个小写字母 5个大写字母 1个特殊字符 前13位为字符位,后面位数为校验位 while (true) { String a = "0123456789"; // 数字 String b = "abcdefghijklmnopqrstuvwxyz"; // 小写字母 String c = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // 大写字母 String d = "~!@#$%^&*()_+=<>/,./;'[]{}|\\"; // 特殊字符 String result = ""; // 加密算法 获取随机数 result = result + getRandomString(a, 2); // 数字 result = result + getRandomString(b, 5); // 小写字母 result = result + getRandomString(c, 5); // 大写字母 result = result + getRandomString(d, 1); // 特殊字符 result = UnSort(result); // 将字母顺序打乱 result = ProCheck(result); Calendar calendar = Calendar.getInstance(); // 当前时间 System.err.println(calendar.getTime() + ":" + result); try { sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(MyRandom.class.getName()).log(Level.SEVERE, null, ex); } } } /** * * @param str 传递一个字符串 * @param length 传出字符串的长度 * @return 随机传出一个指定长度的子字符串 * */ public static String getRandomString(String str, int length) { Random random = new Random(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < length; i++) { int number = random.nextInt(str.length()); sb.append(str.charAt(number)); } return sb.toString(); } /** * * @param str 传递一个字符串 * @return 随机将传入的子字符串乱序后输出 * */ public static String UnSort(String str) { List<String> lists = new ArrayList<>(); Random random = new Random(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < str.length(); i++) { lists.add(str.substring(i, i + 1)); } while (!lists.isEmpty()) { int number = random.nextInt(lists.size()); sb.append(lists.get(number)); lists.remove(number); } return sb.toString(); } /** * * @输入参数:传递一个字符串 * @输出参数:在该字符串最后加上字符的ASCII累加和校验 * */ private String ProCheck(String str) { int sum = 0; for (int i = 0; i < str.length(); i++) { sum = sum + (int) str.charAt(i); } return str + sum; } public static void main(String[] args) { MyRandom random = new MyRandom(); random.start(); } }
2.运行截图
猜你喜欢
请下载代码后再发表评论
相关代码
最近下载
最近浏览
sky1044 LV1
2月19日
sourcezero LV5
2023年12月20日
gao8970206 LV2
2023年12月20日
EFWAGGFAWGR
2023年10月18日
暂无贡献等级
阿超在大学修仙 LV1
2023年9月15日
微信网友_6411724627349504 LV3
2023年4月3日
pfilwy LV1
2023年2月18日
手捧阳光 LV6
2022年12月2日
wuziayng1232 LV10
2022年11月14日
sky丶小十 LV7
2022年10月14日