加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java DES 加密/解密

发布时间:2020-12-14 23:53:14 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.security.S

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.Security;
import java.security.spec.AlgorithmParameterSpec;

import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;

public class Main {

    static Cipher ce;
    static Cipher cd;

    public static void main(String args[]) throws Exception {

        Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

        SecretKey skey = KeyGenerator.getInstance("DES").generateKey();

        byte[] initializationVector = new byte[]{0x10,0x10,0x01,0x04,0x02};

        AlgorithmParameterSpec algParameters = new IvParameterSpec(initializationVector);
        ce = Cipher.getInstance("DES/CBC/PKCS5Padding");
        cd = Cipher.getInstance("DES/CBC/PKCS5Padding");

        ce.init(Cipher.ENCRYPT_MODE,skey,algParameters);
        cd.init(Cipher.DECRYPT_MODE,algParameters);

        FileInputStream is = new FileInputStream("C:/Users/nikos7/Desktop/output.txt");
        FileOutputStream os = new FileOutputStream("C:/Users/nikos7/Desktop/output2.txt");
        int dataSize = is.available();

        byte[] inbytes = new byte[dataSize];
        is.read(inbytes);

        String str2 = new String(inbytes);
        System.out.println("Input file contentn" + str2 + "n");

        write_encode(inbytes,os);

        os.flush();
        is.close();
        os.close();

        System.out.println("Ecrypted Content to output2.txtn");

        is = new FileInputStream("C:/Users/nikos7/Desktop/output2.txt");

        byte[] decBytes = new byte[dataSize];

        read_decode(decBytes,is);

        is.close();

        String str = new String(decBytes);

        System.out.println("Decrypted file contents:n" + str);

    }

    public static void write_encode(byte[] bytes,OutputStream output) throws Exception {
        CipherOutputStream cOutputStream = new CipherOutputStream(output,ce);
        cOutputStream.write(bytes,bytes.length);
        cOutputStream.close();
    }

    public static void read_decode(byte[] bytes,InputStream input) throws Exception {
        CipherInputStream cInputStream = new CipherInputStream(input,cd);
        int position = 0,i;

        while ((i = cInputStream.read()) != -1) {
            bytes[position] = (byte) i;
            position++;
        }
    }
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读