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.运行截图
猜你喜欢
请下载代码后再发表评论

- java数据结构之线性表代码实现
- 证 【小C出品】对java Map的操作
- JAVA读取超大文件内容并处理写到另外文件中
- 原 Java开发小工具(集合遍历导出等方法):针对任何项目文件夹,可以递归遍历文件夹中的任何后缀名的文件,提取其中的中文
- java缓存工具类,支持主流的缓存memcache redis两种缓存系统
- 原 java时间工具类(自定义java时间函数30多个)
- java内存释放
- 原 java Socket小型简单控制台聊天系统
- java上传文件仿ajax实现,将上传的文件在后台解析后,不刷新页面,直接显示在前台代码片段
- java常用的简单排序算法
- 证 基于Java AWT语言的一款精致写字板(功能齐全)
- Java实现按汉语拼音的排序的有用代码片段分享


pfilwy LV1
2月18日
手捧阳光 LV6
2022年12月2日
wuziayng1232 LV9
2022年11月14日
sky丶小十 LV6
2022年10月14日
yymmdm LV6
2022年8月10日
飞梦ff LV8
2022年7月24日
heifenglei LV6
2022年5月27日
喃喵xxxx LV6
2022年4月20日
dlh7967656 LV1
2022年3月30日
berylzZz LV1
2022年3月13日