⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jm.java

📁 jsp范例宝典
💻 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 + -