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

📄 decrypt_kind.java

📁 这是我收集的毕业师兄的毕业设计,具体的功能我也不清楚,不过是可以用来答辩的,完整的毕业设计,有源代码,可爱执行文件,文档资料.
💻 JAVA
字号:
package decrypt;
import java.io.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import javax.crypto.interfaces.*;
import java.security.*;
import java.security.interfaces.*;
import java.security.spec.*;
import java.math.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
public class  decrypt_kind
{
	public static void main(String args[]) throws Exception
	{ }
public String de_RSA(String s)throws Exception
	{
     BigInteger c=new BigInteger(s);
     FileInputStream Lfile=new FileInputStream("Skey_RSA_pri.dat");
	 ObjectInputStream ob=new ObjectInputStream(Lfile);
     RSAPrivateKey pbk=(RSAPrivateKey)ob.readObject();
	 BigInteger d=pbk.getPrivateExponent();
     BigInteger n=pbk.getModulus();
	 BigInteger m=c.modPow(d,n);
	 byte[]mt=m.toByteArray();
	 String returnstr=new String(mt,"UTF8");
	 return returnstr;
	}
public String de_simpleness(int a,String s)throws Exception
	{String returnstr=new String("");
	for(int i=0;i<s.length();i++)
		{char c=s.charAt(i);
			c-=a;
			returnstr+=c;
		}
		return returnstr;
	}
public String de_PBE(String s)throws Exception
	{ 
	    char[] passwd=s.toCharArray();
		PBEKeySpec pbks=new PBEKeySpec(passwd);
		SecretKeyFactory kf=SecretKeyFactory.getInstance("PBEWithMD5AndDES");
		SecretKey k=kf.generateSecret(pbks);
		byte[]salt=new byte[8];
		FileInputStream f=new FileInputStream("PBEEnc.dat");
		f.read(salt);
		int num=f.available();
		byte[]ctext=new byte[num];
		f.read(ctext);
		Cipher cp=Cipher.getInstance("PBEWithMD5AndDES");
		PBEParameterSpec ps=new PBEParameterSpec(salt,1000);
		cp.init(Cipher.DECRYPT_MODE,k,ps);
		byte ptext[]=cp.doFinal(ctext);
	   String returnstr=new String(ctext,"UTF8");
	   return returnstr;
	}
public static String de_symmetry(String s)throws Exception//DESede对称密码,密钥为key1.dat,针对数组的解密。输入字符串,密文输出为字符串,可用中文
	{ 
	 FileInputStream f=new FileInputStream("key1.dat");
         ObjectInputStream b=new ObjectInputStream(f);
	 Key k=(Key)b.readObject();
	 Cipher cp=Cipher.getInstance("DESede");
	 cp.init(Cipher.DECRYPT_MODE,k);
	 FileInputStream f2=new FileInputStream("DES.dat");
	 int num=f2.available();
	byte[] ptext=new byte[num];
	f2.read(ptext);
	 byte  ctext[]=cp.doFinal(ptext);
	 String returnstr=new String(ctext,"UTF8");
	 return returnstr;
	}
public String de_CBC(String s) throws Exception
	{
	 FileInputStream f1=new FileInputStream("key1.dat");
     ObjectInputStream b1=new ObjectInputStream(f1);
	 Key k=(Key)b1.readObject();
	 byte[] rand=new byte[8];
	 FileInputStream f2=new FileInputStream("CBC.dat");
	 f2.read(rand);
	 IvParameterSpec iv=new IvParameterSpec(rand);
	int num=f2.available();
	byte[] ptext=new byte[num];
	f2.read(ptext);
				Cipher cp=Cipher.getInstance("DESede/CBC/PKCS5Padding");
				cp.init(Cipher.DECRYPT_MODE,k,iv);
				//byte ptext[]=s.getBytes("UTF8");
				byte ctext[]=cp.doFinal(ptext);
				String returnstr=new String(ctext,"UTF8");
				System.out.println(returnstr);
		        return returnstr;
	}
public int de_file_symmetry(String s) throws Exception//文件DESede对称密码,密钥为key1.dat,针对数组的加密。输入字符串,密文输出为字符串,可用中文
	{int file_end=s.indexOf(".");String f_end=new String(s.substring(0,file_end));
         File f_del=new File(s);
         FileInputStream f=new FileInputStream("key1.dat");
         ObjectInputStream b=new ObjectInputStream(f);
	 Key k=(Key)b.readObject();
	 Cipher cp=Cipher.getInstance("DESede");
	 cp.init(Cipher.DECRYPT_MODE,k);
         FileInputStream in_file=new FileInputStream(s);
         FileOutputStream out_file=new FileOutputStream(f_end+".txt");
         CipherOutputStream cout=new CipherOutputStream(out_file,cp);
         int is_read=0;
         while((is_read=in_file.read())!=-1)
             {cout.write(is_read);}
         cout.close();out_file.close();in_file.close();System.out.println(""+f_del.delete());
         return 1;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -