Rumah  >  Artikel  >  Java  >  Cara menggunakan operasi skrip Java dan Linux untuk penyulitan dan penyahsulitan fail

Cara menggunakan operasi skrip Java dan Linux untuk penyulitan dan penyahsulitan fail

王林
王林asal
2023-10-05 12:48:111167semak imbas

Cara menggunakan operasi skrip Java dan Linux untuk penyulitan dan penyahsulitan fail

Cara menggunakan operasi skrip Java dan Linux untuk penyulitan dan penyahsulitan fail

Pengenalan: Penyulitan dan penyahsulitan fail ialah teknologi keselamatan maklumat yang biasa melalui penyulitan, kandungan fail tidak boleh dilihat dan diubah suai oleh orang yang tidak dibenarkan dengan itu melindungi keselamatan fail. Artikel ini akan memperkenalkan cara menggunakan operasi skrip Java dan Linux untuk penyulitan dan penyahsulitan fail, serta memberikan contoh kod khusus.

1. Gunakan Java untuk penyulitan dan penyahsulitan fail. Berikut ialah contoh kod untuk penyulitan dan penyahsulitan fail menggunakan Java:

  1. Contoh kod penyulitan fail:

    import java.io.*;
    
    public class FileEncryption {
     public static void main(String[] args) {
         String sourceFile = "source.txt";
         String encryptedFile = "encrypted.txt";
         String key = "mykey";
    
         try {
             FileInputStream inputStream = new FileInputStream(sourceFile);
             FileOutputStream outputStream = new FileOutputStream(encryptedFile);
    
             byte[] buffer = new byte[1024];
             int bytesRead;
    
             while ((bytesRead = inputStream.read(buffer)) != -1) {
                 for (int i = 0; i < bytesRead; i++) {
                     buffer[i] = (byte) (buffer[i] ^ key.getBytes()[i % key.length()]);
                 }
                 outputStream.write(buffer, 0, bytesRead);
             }
    
             inputStream.close();
             outputStream.close();
    
             System.out.println("文件加密完成!");
         } catch (IOException e) {
             e.printStackTrace();
         }
     }
    }

  2. Contoh kod penyahsulitan fail:

    import java.io.*;
    
    public class FileDecryption {
     public static void main(String[] args) {
         String encryptedFile = "encrypted.txt";
         String decryptedFile = "decrypted.txt";
         String key = "mykey";
    
         try {
             FileInputStream inputStream = new FileInputStream(encryptedFile);
             FileOutputStream outputStream = new FileOutputStream(decryptedFile);
    
             byte[] buffer = new byte[1024];
             int bytesRead;
    
             while ((bytesRead = inputStream.read(buffer)) != -1) {
                 for (int i = 0; i < bytesRead; i++) {
                     buffer[i] = (byte) (buffer[i] ^ key.getBytes()[i % key.length()]);
                 }
                 outputStream.write(buffer, 0, bytesRead);
             }
    
             inputStream.close();
             outputStream.close();
    
             System.out.println("文件解密完成!");
         } catch (IOException e) {
             e.printStackTrace();
         }
     }
    }

Dalam contoh proses penyulitan dan penyahsulitan di atas, adalah melalui pembacaan Ini dicapai dengan mengambil aliran bait kandungan fail dan melakukan operasi XOR pada setiap bait. Kunci yang sama digunakan untuk penyulitan dan penyahsulitan, dan operasi penyulitan dan penyahsulitan maklumat dilaksanakan dengan mengitar semula setiap bait kunci untuk melaksanakan operasi XOR pada kandungan fail.

2. Gunakan skrip Linux untuk penyulitan dan penyahsulitan fail

Selain menggunakan Java untuk penyulitan dan penyahsulitan fail, anda juga boleh menggunakan bahasa skrip sistem Linux, seperti skrip Shell, untuk melaksanakan fungsi penyulitan dan penyahsulitan fail. Berikut ialah contoh kod untuk penyulitan dan penyahsulitan fail menggunakan skrip Shell:

  1. Contoh skrip penyulitan fail:

    #!/bin/bash
    
    sourceFile="source.txt"
    encryptedFile="encrypted.txt"
    key="mykey"
    
    while read -r line || [[ -n "$line" ]]; do
     encryptedLine=""
     for ((i=0; i<${#line}; i++)); do
         encryptedChar=$(printf "%d" "'${line:$i:1}")
         encryptedChar=$((encryptedChar ^ $(printf "%d" "'${key:$((i%${#key})):1}")))
         encryptedChar=$(printf "x$(printf "%x" "$encryptedChar")")
         encryptedLine+="${encryptedChar}"
     done
     echo "${encryptedLine}" >> "${encryptedFile}"
    done < "${sourceFile}"
    
    echo "文件加密完成!"

  2. Contoh skrip penyahsulitan fail:

    #!/bin/bash
    
    encryptedFile="encrypted.txt"
    decryptedFile="decrypted.txt"
    key="mykey"
    
    while read -r line || [[ -n "$line" ]]; do
     decryptedLine=""
     for ((i=0; i<${#line}; i++)); do
         decryptedChar=$(printf "%d" "'${line:$i:1}")
         decryptedChar=$((decryptedChar ^ $(printf "%d" "'${key:$((i%${#key})):1}")))
         decryptedChar=$(printf "x$(printf "%x" "$decryptedChar")")
         decryptedLine+="${decryptedChar}"
     done
     echo "${decryptedLine}" >> "${decryptedFile}"
    done < "${encryptedFile}"
    
    echo "文件解密完成!"

,Dalam kedua-dua contoh kod fail di atas dan proses penyahsulitan digunakan Ciri-ciri skrip Shell direalisasikan dengan membaca kandungan fail baris demi baris dan melaksanakan operasi XOR pada setiap aksara. Kunci yang sama digunakan untuk penyulitan dan penyahsulitan, dan operasi penyulitan dan penyahsulitan maklumat dilaksanakan dengan mengitar semula setiap aksara kunci untuk melaksanakan operasi XOR pada kandungan fail.

Kesimpulan: Artikel ini memperkenalkan cara menggunakan skrip Java dan Linux untuk penyulitan dan penyahsulitan fail, serta menyediakan contoh kod khusus. Sama ada anda memilih untuk menggunakan skrip Java atau Linux, anda boleh melaksanakan fungsi penyulitan dan penyahsulitan fail dengan mudah. Berdasarkan keperluan sebenar, anda boleh mengubah suai dan mengoptimumkan kod sampel untuk memenuhi keperluan penyulitan dan penyahsulitan khusus anda. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci Cara menggunakan operasi skrip Java dan Linux untuk penyulitan dan penyahsulitan fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn