


Bagaimanakah saya boleh menyulitkan dan menyahsulit data dengan selamat menggunakan 3DES dalam Java, dan apakah perangkap biasa yang perlu dielakkan?
Cara Menyulitkan dan Menyahsulit Data dengan Selamat Menggunakan 3DES dalam Java
Pengenalan
3DES ( Triple Data Encryption Standard) ialah algoritma penyulitan berkuasa yang biasa digunakan untuk melindungi data sensitif. Melaksanakan penyulitan 3DES dalam Java adalah penting untuk pelbagai aplikasi yang mementingkan keselamatan. Tutorial ini akan membimbing anda melalui langkah-langkah untuk menyulitkan dan menyahsulit data dengan berkesan menggunakan 3DES dalam Java.
Perangkap dan Penyelesaian Biasa
Adalah penting untuk ambil perhatian bahawa kod yang disediakan dalam soalan menghadapi masalah di mana rentetan yang didekripsi tidak sepadan dengan rentetan asal. Ini mungkin disebabkan oleh beberapa faktor, termasuk pengendalian kunci yang salah atau salah tanggapan tentang pengekodan dan penyahkodan.
Kod yang diperbetulkan di bawah menangani isu ini dan menjelaskan penggunaan pengekodan dan penyahkodan:
import java.security.MessageDigest; import java.util.Arrays; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; public class TripleDESTest { public static void main(String[] args) throws Exception { String text = "kyle boon"; byte[] codedtext = new TripleDESTest().encrypt(text); String decodedtext = new TripleDESTest().decrypt(codedtext); System.out.println(codedtext); // Encrypted result in byte array System.out.println(decodedtext); // Decrypted and readable string } public byte[] encrypt(String message) throws Exception { byte[] md5 = MessageDigest.getInstance("MD5").digest("HG58YZ3CR9".getBytes("utf-8")); byte[] keyBytes = Arrays.copyOf(md5, 24); for (int j = 0, k = 16; j < 8;) { keyBytes[k++] = keyBytes[j++]; } SecretKey key = new SecretKeySpec(keyBytes, "DESede"); IvParameterSpec iv = new IvParameterSpec(new byte[8]); Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key, iv); return cipher.doFinal(message.getBytes("utf-8")); } public String decrypt(byte[] message) throws Exception { byte[] md5 = MessageDigest.getInstance("MD5").digest("HG58YZ3CR9".getBytes("utf-8")); byte[] keyBytes = Arrays.copyOf(md5, 24); for (int j = 0, k = 16; j < 8;) { keyBytes[k++] = keyBytes[j++]; } SecretKey key = new SecretKeySpec(keyBytes, "DESede"); IvParameterSpec iv = new IvParameterSpec(new byte[8]); Cipher decipher = Cipher.getInstance("DESede/CBC/PKCS5Padding"); decipher.init(Cipher.DECRYPT_MODE, key, iv); return new String(decipher.doFinal(message), "UTF-8"); } }
Memahami Kod
Dengan mencipta kaedah utama, kami menunjukkan cara untuk menyulitkan dan menyahsulit rentetan sampel. Kaedah penyulitan menggunakan ringkasan MD5 kata laluan "HG58YZ3CR9" untuk menjana kunci 24-bait, yang kemudiannya digunakan untuk memulakan sifir DESede. Tatasusunan bait yang dikodkan dikembalikan sebagai hasil yang disulitkan.
Kaedah nyahsulit melakukan proses terbalik menggunakan kekunci yang sama. Dengan menukar tatasusunan bait yang disulitkan kepada String dengan pengekodan UTF-8, kami memperoleh plaintext asal.
Kesimpulan
Melaksanakan penyulitan 3DES dalam Java mengikut proses yang mudah. Dengan menangani kemungkinan perangkap dan memahami konsep asas pengendalian dan pengekodan kunci, anda boleh melindungi data sensitif dalam aplikasi anda dengan selamat.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menyulitkan dan menyahsulit data dengan selamat menggunakan 3DES dalam Java, dan apakah perangkap biasa yang perlu dielakkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

