废话已经在 java实现加密电话号码,有具体的加密流程注释 这里面说了,这篇文章我就直接上代码了!
请看:
/**
* @Title: TestMain.java
* @Package org.test
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com
* @date 2017-5-29 下午8:15:33
* @version V1.0
*/
package org.test;import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;/** * * 项目名称:Test * 类名称:TestMain * 类描述: 加密* 创建人:Mu Xiongxiong * 创建时间:2017-5-29 下午8:15:33 * 修改人:Mu Xiongxiong * 修改时间:2017-5-29 下午8:15:33 * 修改备注: * @version * */
public class TestMain {/*** * @Title: main* @Description: 该方法的主要作用:* 最新加密法,将一串数字进行加密* 加密规则:先把这串数字降序,然后将每个数字进行加5,* 再用和除以10的余数代替该数字,* 最后将第一位数和最后一位数进行交换,加密完成* @param @param args 设定文件 * @return 返回类型:void * @throws*/public static void main(String[] args) {// 加密System.out.println("请输入你要加密的数字:");Scanner in = new Scanner(System.in);String num = in.next();Pattern pattern = Pattern.compile("[0-9]*");Matcher isNum = pattern.matcher(num.trim());if (isNum.matches()) {// 执行加密的方法encrypt(num);} else {System.out.println("输入的不是数字,请输入数字");}}/*** * @Title: encrypt* @Description: 该方法的主要作用:* @param 设定文件 * @return 返回类型:void * @throws*/public static void encrypt(String stuNum){String encrypt = ""; //加密后的字符串String yuan = ""; //交换位置前int num = 0; //拆分成单个数字int sNum = 0; //每个数字加5之后int yNum = 0; //每个数字的和除以10的余数 int n [] = new int[stuNum.length()];//将每个数字转换成int类型的for (int i = 0; i < n.length; i++) {n[i] = Integer.parseInt(String.valueOf(stuNum.charAt(i)));}//通过冒泡排序法进行降序排序for (int i = 0; i < n.length - 1; i++) {for (int j = 0; j < n.length - 1 - i; j++) {if (n[j] < n[j + 1]) {int temp;temp = n[j];n[j] = n[j + 1];n[j + 1] = temp;}}}for (int i = 0; i < n.length; i++) {String cNum = n[i]+"";num = Integer.parseInt(cNum);//进行每个数字加5sNum = num+5;//再用和除以6的余数代替该数字yNum = sNum % 6;//该和除以6的余数num = yNum; //把每个数字都放在yuan的字符串里面yuan += num;}//将最后一个数字和第一个数字交换位置int m [] = new int[yuan.length()];//将每个数字转换成int类型的for (int i = 0; i < m.length; i++) {m[i] = Integer.parseInt(String.valueOf(yuan.charAt(i)));}//交换位置int fristNum = m[0];m[0]= m[m.length-1];m[m.length-1] = fristNum;for (int i = 0; i < m.length; i++) {encrypt += m[i];}//把加密后的数组放在字符串中System.out.println("原来的电话号码:"+stuNum);System.out.println("加密后的电话号码:"+encrypt);}}
欢迎指点!!!