📄 secretwriting.java
字号:
import java.io.*;import java.security.*;import javax.crypto.*;import sun.misc.*;public class Secretwriting{ public static void main(String[] args) throws Exception { if(args.length<2) { System.out.println("usage:Secretwriting -e|-d text"); return; } Key key; try { ObjectInputStream in=new ObjectInputStream(new FileInputStream("secretkey.ser")); key=(Key)in.readObject(); in.close(); } catch(FileNotFoundException fnfe) { KeyGenerator generator=KeyGenerator.getInstance("des"); generator.init(new SecureRandom()); key=generator.generateKey(); ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("secretkey.ser")); out.writeObject(key); out.close(); } Cipher cipher = Cipher.getInstance("des"); if (args[0].indexOf("e")!=-1) { cipher.init(Cipher.ENCRYPT_MODE,key); String amalgam=args[1]; for(int i=2;i<args.length;i++) amalgam+=""+args[i]; byte[] stringBytes=amalgam.getBytes("UTF8"); byte[] raw=cipher.doFinal(stringBytes); BASE64Encoder encoder=new BASE64Encoder(); String base64=encoder.encode(raw); System.out.println(base64); } else if (args[0].indexOf("d")!=-1) { cipher.init(Cipher.DECRYPT_MODE,key); BASE64Decoder decoder=new BASE64Decoder(); byte[] raw=decoder.decodeBuffer(args[1]); byte[] stringBytes=cipher.doFinal(raw); String result=new String(stringBytes,"UTf8"); System.out.println(result); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -