📄 jm.java
字号:
package com.safe.DataJM;
public class JM {
private int needjam; //用户输入的需要被加密的数字
private String overjam=""; //加密过的数字
private String needjem=""; //需要被解密的数字
private int overjem; //解密后的数字
private int key[]={3,9,13,7};
public JM(){}
public void setNeedjam(int needjam){
this.needjam=needjam;
jam_num();
}
public int getNeedjam(){
return this.needjam;
}
public String getOverjam(){
return this.overjam;
}
public void setNeedjem(String needjem){
this.needjem=needjem;
jem_num();
}
public int getOverjem(){
return this.overjem;
}
private void jam_num(){
int y=2*needjam+1234567;
String b_needjam=Integer.toBinaryString(y);
int ys=b_needjam.length()%4;
int i=0;
if(ys!=0){ //进行填“0”补充
while(i<4-ys){
b_needjam="0"+b_needjam;
i++;
}
}//if(ys!=0)
i=0;
int k=0;
String sub_b_needjam="";
String sub_overjam_str="";
while(i<b_needjam.length()){ //从左向右每次取出4位
sub_b_needjam=b_needjam.substring(i,i+4); //取出4位
int sub_overjam_num=strbintoint(sub_b_needjam); //将取出的二进制转换成对应的整型
sub_overjam_str+=(sub_overjam_num^key[k]); //与密钥进行异或运算
sub_overjam_str+="%";
if(k<3){ //获取下一个密钥值
k++;
}
else{
k=0;
}
i=i+4;
}//while
this.overjam=sub_overjam_str.substring(0,sub_overjam_str.length()-1);
}
private int strbintoint(String substr){ //将二进制转换成对应整型的方法
int pos=0; //在二进制中“1”出现的位置
int temp=0; //二进制转换成的整数
int sublength=substr.length();
while((pos=substr.indexOf("1",pos))>=0){
if(pos==sublength-1){ //如:0001转换成十进制为1
temp+=1;
}
else{
temp+=Math.pow(2, sublength-1-pos); //如:1110转换成十进制为:(2的三次方)+(2的平方)+(2的一次方)
}
pos++;
}
return temp;
}
private void jem_num(){
String over_jem_b_str="";
String needjem_array[]=this.needjem.split("%");
int i=0;
int k=0;
int length=needjem_array.length;
int sub_needjem=0;
while(i<length){
sub_needjem=Integer.parseInt(needjem_array[i]);
String temp=Integer.toBinaryString(sub_needjem^key[k]);
int templength=temp.length();
if(templength<4){
int j=0;
while(j<4-templength){
temp="0"+temp;
j++;
}
}
over_jem_b_str+=temp;
if(k<3){
k++;
}
else{
k=0;
}
i++;
}//while
int yy=strbintoint(over_jem_b_str);
this.overjem=(yy-1234567)/2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -