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:
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);}
}
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));
Cipher cipher = Cipher.getInstance(ALGORITHM); cipher.init(Cipher.ENCRYPT_MODE, publicKey); return cipher.doFinal(plaintext);
Cipher cipher = Cipher.getInstance(ALGORITHM); cipher.init(Cipher.DECRYPT_MODE, privateKey); return cipher.doFinal(ciphertext);}
}
kaedah encryption dan encryption
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));
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!