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 + -
显示快捷键?