加密逻辑分享

加密逻辑分享

本人java菜鸟一名,工作也快一年了,在工作之余思考了很多,总想自己独立做点东西,可是没有什么好的想法,就在昨天突然想做个密码加密试试,然后就大刀阔斧开整。
代码写完之后测试没问题,打成jar包,引入使用没问题,很开心啊,然而悲剧出现了,现在只能加密,不能解密,而且自己把解密的路堵死了。不多说了,直接上代码,没有多少,只是逻辑,并没有用到算法,而且代码也很烂,自己都不能直视。不过有个问题,为什么是静态方法才能调用呢,求各位大神解惑。

自己写的主方法,为什么是public,怕访问不到

public static String main(String str) {
		String[] str2 = new String[str.length()]; //创建String数组,指定长度为密码的长度
		Code code = new Code();
		for(int i=0;i<str.length();i++){
			str2[i] = str.substring(i,i+1);//拆分密码
			str2[i] = code.code(str2[i]);//调用加密逻辑
		}
		String result = Arrays.toString(str2);//将数组转换为字符串
		result = result.replaceAll("[^a-z0-9A-Z]", "");//匹配正则表达式,去掉[,]符号
		return result;
	}

加密逻辑类,就是这里把解密的路堵死了

static String code(String str){
		if(str.equals("0") || str.equals("z") || str.equals("Z")){
			str = "zE0RO";
		}else if(str.equals("1") || str.equals("a") || str.equals("A")
				 || str.equals("j") || str.equals("J")
				 || str.equals("r") || str.equals("R")){
			str = "Oa1nE";
		}else if(str.equals("2") || str.equals("b") || str.equals("B")
				 || str.equals("b") || str.equals("B")
				 || str.equals("s") || str.equals("S")){
			str = "BtW02";
		}else if(str.equals("3") || str.equals("c") || str.equals("B")
				 || str.equals("k") || str.equals("K")
				 || str.equals("t") || str.equals("T")){
			str = "t3rCe";
		}else if(str.equals("4") || str.equals("d") || str.equals("D")
				 || str.equals("l") || str.equals("L")
				 || str.equals("u") || str.equals("U")){
			str = "fDu4r";
		}else if(str.equals("5") || str.equals("e") || str.equals("E")
				 || str.equals("m") || str.equals("M")
				 || str.equals("v") || str.equals("V")){
			str = "fEv5e";
		}else if(str.equals("6") || str.equals("f") || str.equals("F")
				 || str.equals("n") || str.equals("N")
				 || str.equals("w") || str.equals("W")){
			str = "sFi6x";
		}else if(str.equals("7") || str.equals("g") || str.equals("G")
				 || str.equals("o") || str.equals("O")
				 || str.equals("x") || str.equals("X")){
			str = "sGv7n";
		}else if(str.equals("8") || str.equals("h") || str.equals("H")
				 || str.equals("p") || str.equals("P")
				 || str.equals("y") || str.equals("Y")){
			str = "eHg8t";
		}else if(str.equals("9") || str.equals("i") || str.equals("I")
				 || str.equals("q") || str.equals("Q")
				 || str.equals("z") || str.equals("Z")){
			str = "nIi9e";
		}
		return str;
	}

打成jar包后的测试

import tools.Main;
public class Test {

	public static void main(String[] args) {
		String str = "123456";
		String str2 = Main.main(str);
		System.out.println(str2);
	}
}

控制台打印的结果为:Oa1nEBtW02t3rCefDu4rfEv5esFi6x

后期有时间会优化一下这套逻辑,把解密的逻辑也做出来,感谢各位看官,欢迎各路大神指点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值