Rumah Java javaTutorial Cara melaksanakan penyulitan dan penyahsulitan data untuk pembangunan fungsi Java

Cara melaksanakan penyulitan dan penyahsulitan data untuk pembangunan fungsi Java

Aug 06, 2023 pm 06:25 PM
Penyulitan data Penyahsulitan data pengaturcaraan java

Cara melakukan penyulitan dan penyahsulitan data untuk pembangunan fungsi Java

Penyulitan dan penyahsulitan data memainkan peranan penting dalam bidang keselamatan maklumat. Dalam pembangunan Java, terdapat banyak cara untuk melaksanakan fungsi penyulitan dan penyahsulitan data. Artikel ini akan memperkenalkan kaedah penyulitan dan penyahsulitan data menggunakan bahasa pengaturcaraan Java dan memberikan contoh kod.

1. Algoritma penyulitan simetri

Algoritma penyulitan simetri menggunakan kunci yang sama untuk menyulitkan dan menyahsulit data. Algoritma penyulitan simetri yang biasa digunakan termasuk DES, 3DES, AES, dsb.

Contoh kod:

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.security.SecureRandom;
import java.util.Base64;

public class SymmetricEncryptionExample {
    public static void main(String[] args) throws Exception {
        String plaintext = "Hello, World!";
        String secretKey = "0123456789abcdef";
        
        // Generate Key
        SecretKey key = new SecretKeySpec(secretKey.getBytes(), "AES");

        // Create Cipher
        Cipher cipher = Cipher.getInstance("AES");
        
        // Encrypt
        cipher.init(Cipher.ENCRYPT_MODE, key);
        byte[] encryptedBytes = cipher.doFinal(plaintext.getBytes());
        String encryptedText = Base64.getEncoder().encodeToString(encryptedBytes);
        System.out.println("Encrypted Text: " + encryptedText);

        // Decrypt
        cipher.init(Cipher.DECRYPT_MODE, key);
        byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
        String decryptedText = new String(decryptedBytes);
        System.out.println("Decrypted Text: " + decryptedText);
    }
}
Salin selepas log masuk

2. Algoritma penyulitan asimetri

Algoritma penyulitan asimetri menggunakan sepasang kunci, kunci awam digunakan untuk penyulitan dan kunci peribadi digunakan untuk penyahsulitan. Di Java, algoritma penyulitan asimetri yang biasa digunakan ialah RSA.

Contoh kod:

import javax.crypto.Cipher;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.util.Base64;

public class AsymmetricEncryptionExample {
    public static void main(String[] args) throws Exception {
        String plaintext = "Hello, World!";

        // Generate Key Pair
        KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("RSA");
        keyGenerator.initialize(2048);
        KeyPair keyPair = keyGenerator.generateKeyPair();
        PublicKey publicKey = keyPair.getPublic();
        PrivateKey privateKey = keyPair.getPrivate();

        // Create Cipher
        Cipher cipher = Cipher.getInstance("RSA");

        // Encrypt
        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
        byte[] encryptedBytes = cipher.doFinal(plaintext.getBytes());
        String encryptedText = Base64.getEncoder().encodeToString(encryptedBytes);
        System.out.println("Encrypted Text: " + encryptedText);

        // Decrypt
        cipher.init(Cipher.DECRYPT_MODE, privateKey);
        byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
        String decryptedText = new String(decryptedBytes);
        System.out.println("Decrypted Text: " + decryptedText);
    }
}
Salin selepas log masuk

3 Algoritma cincang

Algoritma cincang boleh menukar data apa-apa panjang kepada nilai cincang panjang tetap yang biasa digunakan termasuk MD5, SHA-1, SHA-256, dsb.

Sampel kod:

import java.security.MessageDigest;

public class HashAlgorithmExample {
    public static void main(String[] args) throws Exception {
        String plaintext = "Hello, World!";

        // Create MessageDigest
        MessageDigest md = MessageDigest.getInstance("SHA-256");

        // Hash
        byte[] hashedBytes = md.digest(plaintext.getBytes());
        StringBuilder stringBuilder = new StringBuilder();
        for (byte hashedByte : hashedBytes) {
            stringBuilder.append(Integer.toHexString(0xFF & hashedByte));
        }
        String hashedText = stringBuilder.toString();
        System.out.println("Hashed Text: " + hashedText);
    }
}
Salin selepas log masuk

Ringkasan:

Artikel ini memperkenalkan kaedah dan contoh kod menggunakan Java untuk membangunkan dan melaksanakan penyulitan dan penyahsulitan data. Dalam pembangunan sebenar, algoritma penyulitan yang sesuai dan panjang kunci dipilih mengikut keperluan yang berbeza untuk memastikan keselamatan data.

Atas ialah kandungan terperinci Cara melaksanakan penyulitan dan penyahsulitan data untuk pembangunan fungsi Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

ChatGPT Java: Bagaimana untuk melaksanakan ringkasan automatik dan mengekstrak maklumat penting artikel ChatGPT Java: Bagaimana untuk melaksanakan ringkasan automatik dan mengekstrak maklumat penting artikel Oct 26, 2023 am 10:26 AM

ChatGPTJava: Bagaimana untuk melaksanakan ringkasan automatik dan pengekstrakan maklumat utama daripada artikel, contoh kod khusus diperlukan Ringkasan dan pengekstrakan maklumat utama adalah tugas yang sangat penting dalam mendapatkan maklumat dan pemprosesan teks. Untuk melaksanakan ringkasan automatik dan mengekstrak maklumat utama artikel dalam Java, anda boleh menggunakan pustaka pemprosesan bahasa semula jadi (NLP) dan algoritma yang berkaitan. Artikel ini akan memperkenalkan cara menggunakan Lucene dan StanfordCoreNLP untuk melaksanakan fungsi ini, dan memberikan contoh kod khusus. 1. Ringkasan automatik Ringkasan automatik diekstrak daripada teks

Apakah yang termasuk storan penyulitan data? Apakah yang termasuk storan penyulitan data? Oct 18, 2023 am 09:52 AM

Storan penyulitan data termasuk penyulitan simetri, penyulitan asimetri, algoritma cincang, tandatangan digital dan kaedah lain. Pengenalan terperinci: 1. Penyulitan simetri Semasa proses penyulitan, data dan kunci asal dikira oleh algoritma penyulitan untuk menjana teks sifir yang disulitkan dinyahsulit dengan kunci persendirian dan sebaliknya 3. Algoritma hash, yang boleh mengesahkan integriti dan konsistensi data semasa penghantaran dan penyimpanan data 4. Tandatangan digital, dsb.

Bagaimanakah PHP dan swoole mencapai penyulitan dan penyahsulitan data yang cekap? Bagaimanakah PHP dan swoole mencapai penyulitan dan penyahsulitan data yang cekap? Jul 22, 2023 am 11:07 AM

PHP adalah bahasa pengaturcaraan yang sangat popular yang digunakan secara meluas dalam bidang pembangunan web. Swoole ialah sambungan bahasa PHP berprestasi tinggi yang boleh menyediakan ciri seperti IO tak segerak dan coroutine, yang sangat meningkatkan keupayaan serentak PHP. Dalam sesetengah senario, kita perlu menyulitkan dan menyahsulit data, jadi bagaimana untuk menggunakan PHP dan swoole untuk mencapai penyulitan dan penyahsulitan data yang cekap? Mula-mula, mari kita perkenalkan pilihan algoritma penyulitan. Dalam aplikasi praktikal, algoritma penyulitan yang biasa digunakan termasuk algoritma penyulitan simetri dan algoritma penyulitan asimetri.

Pelbagai kaedah pelaksanaan untuk meneroka penggunaan pemasa Java Pelbagai kaedah pelaksanaan untuk meneroka penggunaan pemasa Java Dec 28, 2023 am 09:57 AM

Untuk meneroka pelbagai kaedah pelaksanaan pemasa Java, contoh kod khusus diperlukan Dalam pembangunan perisian moden, pemasa adalah fungsi yang sangat biasa dan penting. Ia boleh melaksanakan tugas pada selang masa tertentu atau masa tertentu, dan sering digunakan dalam senario seperti pengesanan degupan jantung, penjadualan tugas berjadual dan muat semula data. Dalam pembangunan Java, terdapat banyak cara untuk melaksanakan pemasa Artikel ini akan meneroka beberapa cara biasa dan memberikan contoh kod yang sepadan. Gunakan kelas java.util.Timer yang disertakan dengan Java

Kaedah panggilan yang biasa digunakan dalam refleksi Java Kaedah panggilan yang biasa digunakan dalam refleksi Java Dec 23, 2023 am 09:49 AM

Kaedah panggilan yang biasa digunakan dalam refleksi Java memerlukan contoh kod khusus Pengenalan: Refleksi Java ialah ciri bahasa Java yang berkuasa, yang membolehkan kami memperoleh maklumat kelas secara dinamik dan mengendalikan atribut kelas, kaedah, pembina, dsb. semasa runtime . Di Jawa, dengan menggunakan refleksi, kita boleh mencapai banyak fungsi, seperti mencipta objek secara dinamik, kaedah memanggil dan mengubah suai sifat peribadi. Artikel ini akan memperkenalkan kaedah panggilan yang biasa digunakan dalam refleksi dalam Java dan memberikan contoh kod khusus. Dapatkan objek Kelas sebelum menggunakan refleksi

Bagaimana untuk menggunakan teknik pemfaktoran semula dalam Java untuk meningkatkan kualiti dan reka bentuk kod sedia ada? Bagaimana untuk menggunakan teknik pemfaktoran semula dalam Java untuk meningkatkan kualiti dan reka bentuk kod sedia ada? Aug 03, 2023 pm 01:17 PM

Bagaimana untuk menggunakan teknik pemfaktoran semula dalam Java untuk meningkatkan kualiti dan reka bentuk kod sedia ada? Pengenalan: Dalam pembangunan perisian, kualiti dan reka bentuk kod secara langsung mempengaruhi kebolehselenggaraan dan kebolehskalaan perisian. Teknologi pemfaktoran semula ialah cara yang berkesan untuk membantu meningkatkan kualiti dan reka bentuk kod. Artikel ini akan memperkenalkan cara menggunakan teknologi pemfaktoran semula dalam Java untuk meningkatkan kualiti dan reka bentuk kod sedia ada, dan menunjukkan aplikasi teknologi pemfaktoran semula melalui contoh kod. 1. Memahami konsep pemfaktoran semula merujuk kepada mengubah suai struktur dalaman kod tanpa mengubah tingkah laku luaran kod.

Masalah biasa dan strategi penyelesaian untuk keselamatan rangkaian dalam Python Masalah biasa dan strategi penyelesaian untuk keselamatan rangkaian dalam Python Oct 09, 2023 am 09:39 AM

Masalah biasa dan strategi penyelesaian untuk keselamatan rangkaian dalam Python Keselamatan rangkaian adalah salah satu isu penting yang tidak boleh diabaikan dalam era maklumat hari ini. Dengan populariti dan aplikasi meluas bahasa Python, keselamatan rangkaian juga telah menjadi cabaran yang perlu dihadapi dan diselesaikan oleh pembangun Python. Artikel ini akan memperkenalkan isu keselamatan rangkaian biasa dalam Python dan menyediakan strategi penyelesaian yang sepadan serta contoh kod. 1. Isu keselamatan rangkaian Serangan suntikan SQL Serangan suntikan SQL bermakna penyerang memasukkan kod SQL berniat jahat ke dalam parameter yang dimasukkan oleh pengguna, dengan itu

Cara melaksanakan penyulitan dan penyahsulitan data untuk pembangunan fungsi Java Cara melaksanakan penyulitan dan penyahsulitan data untuk pembangunan fungsi Java Aug 06, 2023 pm 06:25 PM

Cara melaksanakan penyulitan dan penyahsulitan data dalam pembangunan fungsi Java Penyulitan dan penyahsulitan data memainkan peranan penting dalam bidang keselamatan maklumat. Dalam pembangunan Java, terdapat banyak cara untuk melaksanakan fungsi penyulitan dan penyahsulitan data. Artikel ini akan memperkenalkan kaedah penyulitan dan penyahsulitan data menggunakan bahasa pengaturcaraan Java dan memberikan contoh kod. 1. Algoritma penyulitan simetri Algoritma penyulitan simetri menggunakan kunci yang sama untuk menyulitkan dan menyahsulit data. Algoritma penyulitan simetri yang biasa digunakan termasuk DES, 3DES, AES, dsb. Contoh kod: importja

See all articles