Rumah  >  Artikel  >  Java  >  Bagaimana untuk melaksanakan penyulitan dan penyahsulitan data dalam Java

Bagaimana untuk melaksanakan penyulitan dan penyahsulitan data dalam Java

WBOY
WBOYasal
2023-10-09 08:42:30824semak imbas

Bagaimana untuk melaksanakan penyulitan dan penyahsulitan data dalam Java

Bagaimana untuk melaksanakan penyulitan dan penyahsulitan data dalam Java, contoh kod khusus diperlukan

Abstrak:
Penyulitan dan penyahsulitan data memainkan peranan penting dalam bidang keselamatan maklumat. Artikel ini akan memperkenalkan cara menggunakan bahasa pengaturcaraan Java untuk melaksanakan penyulitan dan penyahsulitan data, serta menyediakan contoh kod khusus. Ini termasuk penggunaan algoritma penyulitan simetri dan algoritma penyulitan asimetri.

1. Algoritma penyulitan simetri
Algoritma penyulitan simetri menggunakan kunci yang sama untuk menyulitkan dan menyahsulit data. Algoritma penyulitan simetri yang biasa digunakan dalam Java termasuk DES, 3DES dan AES. Berikut ialah kod contoh yang menggunakan algoritma AES untuk penyulitan dan penyahsulitan data:

  1. Import perpustakaan dan pakej kelas Java yang berkaitan
    import javax.crypto.Cipher; ;
    import javax.crypto.spec.DESKeySpec;

  2. Takrifkan kaedah penyulitan dan penyahsulitan
  3. Penyulitan Symmetric kelas awam {

    Rentetan akhir statik peribadi ALGORITHM = "AES";
    (byte[teksbyte] plakat awam [ ] key) melontar Exception {

     SecretKey secretKey = SecretKeyFactory.getInstance(ALGORITHM).generateSecret(new DESKeySpec(key));
     Cipher cipher = Cipher.getInstance(ALGORITHM);
     cipher.init(Cipher.ENCRYPT_MODE, secretKey);
     return cipher.doFinal(plaintext);

    }

    public static byte[] decrypt(bait[] ciphertext, byte[] key) melontar Exception {

     SecretKey secretKey = SecretKeyFactory.getInstance(ALGORITHM).generateSecret(new DESKeySpec(key));
     Cipher cipher = Cipher.getInstance(ALGORITHM);
     cipher.init(Cipher.DECRYPT_MODE, secretKey);
     return cipher.doFinal(ciphertext);

    }

    }


    Gunakan kaedah penyulitan awam
  4. kelas Utama {

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

     byte[] key = "secretkey".getBytes(); // 密钥
     byte[] plaintext = "Hello, world!".getBytes(); // 明文
    
     byte[] ciphertext = SymmetricEncryption.encrypt(plaintext, key); // 加密
     System.out.println("Ciphertext: " + new String(ciphertext));
    
     byte[] decryptedText = SymmetricEncryption.decrypt(ciphertext, key); // 解密
     System.out.println("Decrypted Text: " + new String(decryptedText));

    }

    }


  5. 2. Algoritma penyulitan asimetri
Algoritma penyulitan asimetri menggunakan kekunci berbeza untuk menyulitkan dan menyahsulit data. Algoritma penyulitan asimetri yang biasa digunakan di Java termasuk RSA. Berikut ialah contoh kod yang menggunakan algoritma RSA untuk penyulitan dan penyahsulitan data:


Import perpustakaan dan pakej kelas Java yang berkaitan
    import java.security.KeyPair
  1. import java.security.KeyPair.Keyimport java ;
    import java.security.PublicKey;
    import javax.crypto.Cipher;


    Tentukan kaedah penyulitan dan penyahsulitan
  2. Penyulitan Asymmetric kelas awam {
  3. rentetan akhir statik peribadi]ALGORITHM = "RSA"🎎 byte [] plaintext, PublicKey publicKey) melontar Exception {

     Cipher cipher = Cipher.getInstance(ALGORITHM);
     cipher.init(Cipher.ENCRYPT_MODE, publicKey);
     return cipher.doFinal(plaintext);

    }

    public static byte[] decrypt(bait[] ciphertext, PrivateKey privateKey) melontar Exception {

     Cipher cipher = Cipher.getInstance(ALGORITHM);
     cipher.init(Cipher.DECRYPT_MODE, privateKey);
     return cipher.doFinal(ciphertext);

    }

    }

    kaedah encryption dan encryption

  4. kelas awam Utama {

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

     KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(ALGORITHM);
     KeyPair keyPair = keyPairGenerator.generateKeyPair();
     PublicKey publicKey = keyPair.getPublic();
     PrivateKey privateKey = keyPair.getPrivate();
    
     byte[] plaintext = "Hello, world!".getBytes(); // 明文
    
     byte[] ciphertext = AsymmetricEncryption.encrypt(plaintext, publicKey); // 加密
     System.out.println("Ciphertext: " + new String(ciphertext));
    
     byte[] decryptedText = AsymmetricEncryption.decrypt(ciphertext, privateKey); // 解密
     System.out.println("Decrypted Text: " + new String(decryptedText));

    }

    }


  5. Kesimpulan:
Algoritma penyulitan simetri dan algoritma penyulitan asimetrik dalam data Java boleh digunakan dan menyahsulit . Artikel ini memberikan contoh kod khusus untuk penyulitan dan penyahsulitan data menggunakan algoritma AES dan RSA. Pembaca boleh memilih algoritma penyulitan yang sesuai berdasarkan keperluan sebenar dan melaksanakannya mengikut kod dalam contoh. Pada masa yang sama, untuk meningkatkan keselamatan data, adalah disyorkan untuk menambah penjanaan utama dan mekanisme pengurusan kepada aplikasi praktikal untuk mengelakkan kebocoran kunci.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penyulitan dan penyahsulitan data dalam Java. 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