secretwriting.java
来自「一个java语言的des的加密和解密的程序」· Java 代码 · 共 54 行
JAVA
54 行
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 + =
减小字号Ctrl + -
显示快捷键?