问题描述
publicstaticStringencrypt(Stringpassword){charc1[]=password.toCharArray();for(inti=0;i<password.length();i++){c1[i]=(char)(i+c1[i]);}returnnewString(c1);}publicstaticvoidmain(String[]args){System.out.println(encrypt("opet123456"));//输出为:oqgw579;=?}现在我想写个函数,传入"oqgw579;=?"输出为:opet123456请大侠们帮我看看。写个函数。谢谢
解决方案
解决方案二:
很简单的我大概给你说下思路已知大写字母A的ASCII码是65,小写字母a的ASCII码97,则用八进制表示的字符常量'101'通过你的for循环如:0+o=o0+81=81o1+p=q1+82=83q2+e=g2+71=73g3+t=w3+86=89w.....一次类推反编译只需要将oqgw579;=?转换成相应的ASCII数字循环相减相应的值最后转成字符即可得到原码
解决方案三:
publicstaticStringdecrypt(Stringpassword){charc1[]=password.toCharArray();for(inti=0;i<password.length();i++){c1[i]=(char)(c1[i]-i);//跟encrypt反过来就行了}returnnewString(c1);}
时间: 2024-11-02 03:19:46